C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: error LNK2001:外部シンボル”〜”は未解決です


(過去ログ 93 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■55734 / inTopicNo.1)  error LNK2001:外部シンボル”〜”は未解決です
  
□投稿者/ ぷう (1回)-(2010/12/11(Sat) 17:23:31)

分類:[C/C++] 

2010/12/14(Tue) 08:44:27 編集(投稿者)

開発環境
Windows XP
Visual Studio 6.0 EnterPrise Edition
C++

プログラムが長くなってしまうため、
抜粋します。

#include "stdafx.h"
#include "FmcrApi.h"
#include "FmcrApiDlg.h"
#include "Api.h"
#include "McrApi.h"
#include "error.h"

エラー
FmcrApiDlg.obj : error LNK2001: 外部シンボル "START@0" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "END@0" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "VER@8" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "STS@4" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "WR_LCKDAT@12" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "RD_LCKDAT@12" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "WR_DAT@20" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "RD_DAT@24" は未解決です
FmcrApiDlg.obj : error LNK2001: 外部シンボル "SET_NO@4" は未解決です
FmcrApi.exe : fatal error LNK1120: 外部参照 9 が未解決です。


補足
START,END,VERなどは、関数名です。
この関数は、
プロトタイプ宣言:Api.h
実体:Api.cppにあります。

エラーの出ているobjは
Fmcrいうフォルダにあり、
Api.cppなどは、
Apiというフォルダにあります。



宣言がしていないのか見てみても、
プロトタイプ宣言は間違いなくできているし、
実体もあります。
スペルなども間違っていません。
Api.hをインクルードしているので、
間違っていないと思うのですが…。

C++初心者のためわかりません…
いろいろ調べてみては試してみたのですが、
解決しませんでしたので、質問させていただきます。

初歩的なことかもしれませんが、
よろしくお願いいたします。
引用返信 編集キー/
■55735 / inTopicNo.2)  Re[1]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ επιστημη (2572回)-(2010/12/11(Sat) 21:25:45)
επιστημη さんの Web サイト
FmcrApiDlgくんはApi.cppに定義された関数たちを(C++でなく)C関数だと思っているみたい。
FmcrApiDlgとApiのどちらか(あるいはどちらも)間違っています。

引用返信 編集キー/
■55743 / inTopicNo.3)  Re[2]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ PATIO (73回)-(2010/12/13(Mon) 10:01:25)
> いろいろ調べてみては試してみたのですが、

いろいろとだけで済ませてしまわないで、
試して見た内容をあげた方がいいかもしれません。

全て出なくても良いのでどれか関数を選んで

プロトタイプ宣言と言っている記述。
実際の実装部分の記述。(関数名と引数の部分だけで良いかと)
呼び出している部分の記述。

を実際に提示した方が早いと思います。

提示されている内容は、その物ずばりの部分が無いので
結局、想像で話をするしかないです。

引用返信 編集キー/
■55748 / inTopicNo.4)  Re[1]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ shu (279回)-(2010/12/13(Mon) 12:35:07)
No55734 (ぷう さん) に返信

> #include "stdafx.h"
> #include "FmcrApi.h"
> #include "FmcrApiDlg.h"
> #include "Api.h"
> #include "McrApi.h"
> #include "error.h"
これは何というファイルに記述されていますか?

関係しそうなファイルリストを提示された方がよいかと思います。

引用返信 編集キー/
■55776 / inTopicNo.5)  Re[2]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (2回)-(2010/12/14(Tue) 08:33:39)
No55735 (επιστημη さん) に返信
> FmcrApiDlgくんはApi.cppに定義された関数たちを(C++でなく)C関数だと思っているみたい。
> FmcrApiDlgとApiのどちらか(あるいはどちらも)間違っています。
>

どのように直したらいいのでしょうか?
宣言などをもう一度書き込みます。
引用返信 編集キー/
■55777 / inTopicNo.6)  Re[3]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (3回)-(2010/12/14(Tue) 08:40:36)
No55743 (PATIO さん) に返信
>>いろいろ調べてみては試してみたのですが、
>
> いろいろとだけで済ませてしまわないで、
> 試して見た内容をあげた方がいいかもしれません。
>
> 全て出なくても良いのでどれか関数を選んで
>
> プロトタイプ宣言と言っている記述。
> 実際の実装部分の記述。(関数名と引数の部分だけで良いかと)
> 呼び出している部分の記述。
>
> を実際に提示した方が早いと思います。
>
> 提示されている内容は、その物ずばりの部分が無いので
> 結局、想像で話をするしかないです。
>

プロトタイプ宣言:引数なし、あり
APIERR WINAPI START(VOID);
APIERR WINAPI SET_NO(int inNo )
こんなかんじですべて記述してあります。

実装部分:引数なし、あり
APIERR WINAPI START(VOID)
{
/*内容*/
}
APIERR WINAPI SET_NO(int inNo )
{
/*内容*/
}

呼び出し部分:
err = START();


このような記述になっています。
引用返信 編集キー/
■55778 / inTopicNo.7)  Re[2]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (4回)-(2010/12/14(Tue) 08:43:31)
No55748 (shu さん) に返信
> ■No55734 (ぷう さん) に返信
>
>>#include "stdafx.h"
>>#include "FmcrApi.h"
>>#include "FmcrApiDlg.h"
>>#include "Api.h"
>>#include "McrApi.h"
>>#include "error.h"
> これは何というファイルに記述されていますか?
>
> 関係しそうなファイルリストを提示された方がよいかと思います。
>

すみません
「何というファイルに記述」
とはどういうことでしょうか…
ほかの.cppなどでもIncludeしているかということでしょうか?
引用返信 編集キー/
■55779 / inTopicNo.8)  Re[3]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (6回)-(2010/12/14(Tue) 09:03:02)
2010/12/14(Tue) 09:11:59 編集(投稿者)

プロトタイプ宣言に以下を足してみました。

#ifdef __cplusplus
extern "C"{
/*プロトタイプ宣言*/
}
#endif

これではだめでした
引用返信 編集キー/
■55780 / inTopicNo.9)  Re[3]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ shu (283回)-(2010/12/14(Tue) 09:10:12)
No55778 (ぷう さん) に返信

> すみません
> 「何というファイルに記述」
> とはどういうことでしょうか…
> ほかの.cppなどでもIncludeしているかということでしょうか?
ここまでに登場しているcppファイルは『Api.cpp』しかありません。

> エラー
> FmcrApiDlg.obj : error LNK2001: 外部シンボル "START@0" は未解決です
> 〜
> FmcrApiDlg.obj : error LNK2001: 外部シンボル "SET_NO@4" は未解決です
> FmcrApi.exe : fatal error LNK1120: 外部参照 9 が未解決です。
このエラーからFmcrApiDlg.???とFmcrApi.???はありそうだということまでしか
分かりません。

そして外部シンボルが未解決ということは外部シンボルだということは
リンカが把握しているけど実体にたどり着けないよということです。

ここにLNK2001について載っています。
http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/em/em02_04.htm


引用返信 編集キー/
■55782 / inTopicNo.10)  Re[4]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (8回)-(2010/12/14(Tue) 09:25:58)
No55779 (ぷう さん) に返信
> 2010/12/14(Tue) 09:11:59 編集(投稿者)
>
> プロトタイプ宣言に以下を足してみました。
>
> #ifdef __cplusplus
> extern "C"{
> /*プロトタイプ宣言*/
> }
> #endif
>
> これではだめでした

すみません、確認不足で
申し訳ないのですが、
この記述はしてありました。
引用返信 編集キー/
■55783 / inTopicNo.11)  Re[4]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (9回)-(2010/12/14(Tue) 09:34:18)
No55780 (shu さん) に返信
> ■No55778 (ぷう さん) に返信
>
>>すみません
>>「何というファイルに記述」
>>とはどういうことでしょうか…
>>ほかの.cppなどでもIncludeしているかということでしょうか?
> ここまでに登場しているcppファイルは『Api.cpp』しかありません。
.dswというプロジェクト ワークスペースには、
.cppはApiのほかに二つありますが、
その二つはIncludeしていません。
違うワークスペースではApi.hのみIncludeしています。

>>エラー
>>FmcrApiDlg.obj : error LNK2001: 外部シンボル "START@0" は未解決です
>>〜
>>FmcrApiDlg.obj : error LNK2001: 外部シンボル "SET_NO@4" は未解決です
>>FmcrApi.exe : fatal error LNK1120: 外部参照 9 が未解決です。
> このエラーからFmcrApiDlg.???とFmcrApi.???はありそうだということまでしか
> 分かりません。
>
> そして外部シンボルが未解決ということは外部シンボルだということは
> リンカが把握しているけど実体にたどり着けないよということです。
>
> ここにLNK2001について載っています。
> http://www.xlsoft.com/jp/products/intel/cvf/docs/vf-html/em/em02_04.htm
>
いまいち理解ができませんでした…。
もう少し勉強しようと思いますが
extern "C"だと思っていたので
それでないとなると手詰まってしまいました…。
引用返信 編集キー/
■55790 / inTopicNo.12)  Re[5]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (11回)-(2010/12/14(Tue) 10:35:14)
Api.hは
FmcrApiDlg.objなどがある
プロジェクト ワークスペースとは
別のプロジェクト ワークスペースにあります。
それが原因でしょうか?
引用返信 編集キー/
■55794 / inTopicNo.13)  Re[6]: error LNK2001:外部シンボル”〜”は未解決です
□投稿者/ ぷう (13回)-(2010/12/14(Tue) 11:37:28)
2010/12/14(Tue) 11:37:39 編集(投稿者)

プロジェクトの設定が間違っていたことと
.dll、.libの更新をしていないだけでした。

ご迷惑おかけして申し訳ありませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -