意味不明なリンカエラー (1)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 意味不明なリンカエラー (1) [#g30fff8b]
VC++(.NET)で、コンパイルは通るのに、リンクでエラーになる。
hoge.obj : error LNK2001: 外部シンボル "(シンボル名)" (C...
C++ でのシンボル名というのは "??メソッド名や名前空間を@@...
[[Microsoft の説明:http://www.microsoft.com/japan/develop...
シンボル名は宣言されているが、実装がない(見つからない)
ケースが多いだろうと。つまり、
- シンボル名(関数名など)は宣言されているが、実装が宣言...
- シンボル名は宣言されているが、実装がない。
というパターンになるだろうなぁと。
前者の間違いは比較的発見しやすいが、後者の場合にハマるこ...
つまり、宣言通りに実装している(はずである)のに、リンカ...
ちゃんと探せよボケリンカ!といいたくなるエラー。
宣言はヘッダー(.h)に書いて、実装を別のファイル(.cpp など)...
かつ、それらのソースが同じプロジェクトに含まれていない場...
そのヘッダのみを include して使おうとしたときに、
リンカがこの実装を見つけてくれないというパターンが多い。
この場合、次の解決方法がある。
- 実装部を含む該当ファイルを全てプロジェクトに追加する。
- 実装ファイル(.cpp)を include する(ヘッダ include の直...
どちらもあまり美しくないが、一応これで解決はする。
もっと良い方法ないかなぁ。
*** 備考 [#a41a3b83]
クラスの場合、ヘッダにインラインで書かないで別の実装部を...
クラス名::メンバ名(メソッド名)
という記述をする必要がある。
-----
[[プログラム・開発系メモ]]
終了行:
* 意味不明なリンカエラー (1) [#g30fff8b]
VC++(.NET)で、コンパイルは通るのに、リンクでエラーになる。
hoge.obj : error LNK2001: 外部シンボル "(シンボル名)" (C...
C++ でのシンボル名というのは "??メソッド名や名前空間を@@...
[[Microsoft の説明:http://www.microsoft.com/japan/develop...
シンボル名は宣言されているが、実装がない(見つからない)
ケースが多いだろうと。つまり、
- シンボル名(関数名など)は宣言されているが、実装が宣言...
- シンボル名は宣言されているが、実装がない。
というパターンになるだろうなぁと。
前者の間違いは比較的発見しやすいが、後者の場合にハマるこ...
つまり、宣言通りに実装している(はずである)のに、リンカ...
ちゃんと探せよボケリンカ!といいたくなるエラー。
宣言はヘッダー(.h)に書いて、実装を別のファイル(.cpp など)...
かつ、それらのソースが同じプロジェクトに含まれていない場...
そのヘッダのみを include して使おうとしたときに、
リンカがこの実装を見つけてくれないというパターンが多い。
この場合、次の解決方法がある。
- 実装部を含む該当ファイルを全てプロジェクトに追加する。
- 実装ファイル(.cpp)を include する(ヘッダ include の直...
どちらもあまり美しくないが、一応これで解決はする。
もっと良い方法ないかなぁ。
*** 備考 [#a41a3b83]
クラスの場合、ヘッダにインラインで書かないで別の実装部を...
クラス名::メンバ名(メソッド名)
という記述をする必要がある。
-----
[[プログラム・開発系メモ]]
ページ名: