[解決済み] エラー LNK2019: 関数内で参照されている未解決の外部シンボル "" があります。
質問
現在、私のコードをコンパイルすると、以下のエラーが発生します。
error LNK2019: 未解決外部シンボル "public: void __thiscall Agent::printSelf(void)" (?printSelf@Agent@QAEXXZ) function "public: void __thiscall World::processMouse(int,int,int)" (?processMouse@World@QAEXHH@Z) World.obj で参照されています。
以下は私のコードです。
Agent.h:
class Agent
{
public:
Agent();
void printSelf();
Agent.cpp。
void Agent::printSelf()
{
printf("Agent species=%i\n", species);
for (int i=0;i<mutations.size();i++) {
cout << mutations[i];
}
}
GLView.cpp。
void GLView::processMouse(int button, int state, int x, int y)
{
if(world->isDebug()) printf("MOUSE EVENT: button=%i state=%i x=%i y=%i\n", button, state, x, y);
if(button==0){
int wx= (int) ((x-conf::WWIDTH/2)/scalemult-xtranslate);
int wy= (int) ((y-conf::WHEIGHT/2)/scalemult-ytranslate);
world->processMouse(button, state, wx, wy);
}
mousex=x; mousey=y;
downb[button]=1-state;
}
void World::processMouse(int button, int state, int x, int y)
{
if (state==0) {
float mind=1e10;
float mini=-1;
float d;
for (int i=0;i<agents.size();i++) {
d= pow(x-agents[i].pos.x,2)+pow(y-agents[i].pos.y,2);
if (d<mind) {
mind=d;
mini=i;
}
}
if (mind<1000) {
//toggle selection of this agent
for (int i=0;i<agents.size();i++) {
if(i!=mini) agents[i].selectflag=false;
}
agents[mini].selectflag= !agents[mini].selectflag;
agents[mini].printSelf();
setControl(false);
}
}
}
かなり困っています。長い間このコードに取り組んでいなかったので、何が変わってこうなったのかよくわかりません。どなたか間違ったことを見ていませんか?
解決方法は?
最も可能性の高い原因は、「Select」ボタンをクリックして作成されたオブジェクトにリンクしていないことです。
Agent.cpp
.
プロジェクトの一部であることを確認し、現在のコンパイラーでコンパイルされた正しいバージョンを使用していることを確認する必要があります (しばらく触っていないとのことなので、オブジェクトが以前のコンパイラーバージョンでビルドされ、互換性がない可能性があります - たとえば、異なる名前のマングリング方法など)。
最初に試すべきことは、(プロジェクト内に正しいファイルがすべてあることを確認した後)完全なクリーン&ビルドです。
その他、いくつかの点について。
-
エラーが発生しているのは
World::processMouse
のソースを意味します。GLView::processMouse
は関係ないでしょう。 -
を混ぜているのが気になりますね。
printf
とcout
は、ちょっと......気になりますね。おそらくprintf
本格的なC++プログラミングのために。動作はしますが、ほとんどはレガシーCのサポートが目的です。
関連
-
[解決済み】構造体のベクター初期化について
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み] LNK2019: unresolved external symbol - function というエラーはどうすれば解決できますか?
-
[解決済み] エラー LNK2019: 関数 ___tmainCRTStartup で参照される未解決の外部シンボル _main
-
[解決済み] オブジェクトファイル内の未解決の外部シンボル
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】Enterキーを押して続行する
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++