2016-03-25 4 views
0

fun.vcxprojというプロジェクトで、fun.slnという名前のソリューションを用意しました。Visual Studio(LNK2001)の同じソリューションに別々のプロジェクトからのファイルを含める?

私は使用する準備ができている名前空間をたくさん作成しました。

別のプロジェクトno_more_fun.vcxprojを作成しました。

fun.vcxprojのインクルードディレクトリをno_more_fun.vcxprojの設定に追加しました。

私は

#include "candy.h" 

void main(void) 
{ 

candy::get(); 
return; 

} 

candy.hは、(設定に追加された)fun.vcxprojのデフォルトディレクトリ

である。しかし、私は取得...

をno_more_fun.cppするためにこれを追加
LNK2001 unresolved external symbol "int __cdecl candy::get(unsigned long)" ([email protected]@@[email protected]) ..... 

Visual Studioはコンパイルする前にエラーを表示しません。 IDNよう

「キャンディ」の名前空間は「楽しい」プロジェクトで正常に動作します私はONE内の異なるプロジェクト間で効率的に共有コードについては行くことができる方法を理解することができるように...

がガイドか何かです溶液?

+1

[定義されていない参照/未解決の外部シンボルエラーとは何ですか?どうすれば修正できますか?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-外部記号エラー・アンド・ハウ・ド・イ・フィックス) –

答えて

0

これはリンカエラーです。コンパイラがcandy.hヘッダにcandy :: get()メソッドを見つけたので、コンパイル時にエラーは発生しませんでしたが、実装(candy.cppファイル内にあると思います)がリンカによって見つかりません。 no_more_fun.vcxprojにもcandy.cppを追加するだけです。

ps。私は観察しませんでしたが、エラーメッセージでは、関数がパラメータを待っていることがわかります。 はこのようにそれを呼び出す:

unsigned long foo = 0; 
candy::get(foo); 
0

これがために起こっていることは愚かに聞こえるがno_more_funプロジェクトがあまりにもその「ディレクトリ」の「ファイル」を持っていたように...私はただのVisual Studioへのファイルをドラッグ。

wow ...私はそれをする必要はありません...私は間違っていますか?(気違い)。

関連する問題