問題タブ [linker-errors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
533 参照

c++ - C++GNUリンカーエラー

コンパイルコマンドを使用して、Cygwin経由でWindows上のプログラムをコンパイルしようとしています。

チャートを描画するChartDirectorというAPIを使用しています。私はこれまでこの方法でライブラリをリンクしたことがないので(通常はVisual Studioを介してリンクします)、これは少し新しいです。エラーのリストが非常に多いので、すべてをリストすることはしませんが、発生するリンカーエラーのタイプを明確にするために1つリストします。

これらはすべて、「xxx」エラーへの未定義の参照です。

./includeにたくさんのヘッダーファイルがあり、./libにchartdir50.libというライブラリがあります。

私のコンパイルラインの何が問題になっていますか?

0 投票する
2 に答える
395 参照

c++ - C++ リンカ エラーを検出する自動プログラムはありますか?

GCC コンパイラを使用して、C++ を使用する Linux 環境で作業しています。

現在、既存の大規模なコード本体の変更とアップグレードに取り組んでいます。この一環として、コード全体のさまざまな場所に非常に多数の小さな参照を追加して、物事をリンクし、いくつかの新しい外部コード ライブラリを追加する必要がありました。ビルド プロセスを処理するために、configure.ac ファイルにリンクされた Makefile の非常に大きく複雑な構造もあります。

ビルド プロセスを開始すると、すべてが問題なくコンパイルされますが、作成した新しく追加されたカスタム コード ライブラリを使用しようとすると、恐ろしいリンカ エラーが返されます。これまで、スペルの不一致を探し、すべてのライブラリがビルド プロセスに含まれている順序を確認し、作成された .o ファイルにダンプを使用して必要なものが含まれていることを確認しました。すべてが、本来あるべき場所にあります。また、ライブラリを個別にテストしましたが、問題はそこにありません。

つまり、これらのシナリオで通常行うべきことのほとんどを試しました。

ここで役立つ cppcheck または splint (どちらも実行できませんでした) と同様に、リンカー エラーを自動的に検出できる C++ 用のツールはありますか?

0 投票する
1 に答える
497 参照

objective-c - iPhone SDK で OpenGL フレームワークをリンクするライブラリを追加するにはどうすればよいですか?

OpenGL を研究しようとしており、フレームワークを追加しましたが、リンカー エラーが発生します。問題は、リンクのためにライブラリをプロジェクトに追加していることだと思います。ライブラリを追加しようとするたびに、構成設定を永遠に探し回っています誰か、簡単なクリックアンドゴーの答えを教えてください!

0 投票する
2 に答える
5818 参照

c++ - g++ リンカー エラー: std::hash の未定義参照エラーの取得

コードで TR1 実装の unordered_map を使用していますが、リンカが解読できない奇妙なエラーを返します。

これはエラーであり、それが向けられている行を検出することさえできませんか? 声明から:

`std::hash::operator()(DottedRule) const' への未定義の参照

ハッシュの使用法についてだと思います。さて、コード全体が大きすぎます (それでも見たい場合は、後で投稿するかもしれません) が、関連する部分は次のとおりです。

私が含めた最後の行は、ハッシュが使用されている唯一の場所です。何が起こっているのでしょうか?

どうもありがとう、オヌール

0 投票する
7 に答える
900 参照

c++ - g++ で C および C++ コードをコンパイルするときのリンク エラー

C で書かれた中規模 (10,000 行程度) のプログラムを C++ プログラムに統合しています。C コードへのインターフェイスとして新しいクラスを作成したBWAGenomeので、C 関数へのアクセスはすべてカプセル化されます。私はコンパイラですべてをコンパイルしていg++ます。.o ファイルはすべて正しく生成されますが、それらを最終的な実行可能ファイルにリンクしようとすると、コンパイラはシンボルが見つからないと文句を言います。これが私が得るエラーメッセージです:

これらの関数はすべて、私が作成した C++ クラスにあります。それらは C コードで関数をラップしますが、シンボルがどのように未定義になる可能性があるのか​​ まったくわかりません。

コードとこれまでに行ったことについての詳細:

  • すべてが でコンパイルされてg++いるので、正しく理解すれば、extern "C" {};インクルードする c ヘッダー ファイルを囲む必要はありません。
  • すべてのコードが個別に正しくコンパイルされます。エラーは、リンク中にのみ発生します。
  • Cコードを静的関数から呼び出す必要があるかもしれないとどこかで聞いたので、C関数への各呼び出しを静的クラスメソッド内にラップして、代わりにそれを呼び出してみました。

この問題を解決する方法についてのアイデアはありますか?


編集: BWTRestoreBWT と GetMatches の定義と宣言を追加

2番目の編集:多くの魂の検索の後、問題は私が考えていたもののほとんどとはまったく無関係であることに気付きました. 詳細については、私の回答を参照してください。

0 投票する
4 に答える
1518 参照

c - SunOS でのコンパイル時に strerror_r が原因でエラーが発生する (C プログラミング)

Linux では警告なしで正常にコンパイルおよび実行される C プログラムがありますが、SunOS でコンパイルしようとすると、次の警告が表示されます。

何か案は?

0 投票する
1 に答える
2332 参照

c++ - xerces-c++ コンパイル/リンクに関する質問

Xerces-C++ (XML ライブラリ) をインストールした後:

簡単なプログラム (xmlval.cpp) を作成します。

そしてコンパイル:

コンパイル結果は、次のような一連の行です。

これについて何か考えはありますか?

0 投票する
2 に答える
532 参照

gcc - ld からの「未定義の参照」エラー

これは、タイトルが考えるほど単純ではありません。

実行可能ファイルとリンクしようとしているサードパーティの共有ライブラリのいくつかの関数シンボルについて、linker/ld から「未定義の参照」エラーを受け取ります。

奇妙な点は、そのライブラリ自体に問題のある問題のシンボルの定義が含まれていることです。

奇妙な部分は、私のプロジェクトにいくつかの実行可能ファイルがあり、この問題に直面しているものとそうでないものがあることです。

gcc/ld フラグを台無しにしましたか、それとも何か他のものですか?

0 投票する
2 に答える
2000 参照

templates - Dev-C ++の複数のファイル、リンカーエラー。テンプレート

かなりばかげた質問だと確信していることをお詫びしますが、それを機能させることはできません!

また、どの情報が多すぎるのかわからないので、おそらく十分な情報を提供しないので、それについても申し訳ありません。質問してください。

main.cpp内でクラスを書き始めましたが、大きくなったので、別のソースファイルにシフトすることにしました。私はこれを行う方法についてあまりよくわかりません、そしてインターネットリソースからこの特定の問題を修正するのを助けるために何も理解することができません(それ故に尋ねます)。

私は、メインプログラム関数の上のすべての関数定義を含むクラス定義から始めました。これは正常に実行されます。次に、これを2つの別々の部分に分割します。main関数の上にあるクラス宣言(これが正しい用語だと思います)とmain関数の下にある関数定義。

これも完璧に動作します。クラス宣言をヘッダーファイルに切り出しました。このヘッダーファイルの形式は

どこかで読んだことは役に立ちますが、理由はよくわかりません。ヘッダーが複数回含まれている場合は、関数の再宣言を停止することだと思います。

そのため、現在、このヘッダーファイルは他のインクルードと一緒にインクルードされています。次に、メイン関数、次にメイン関数の下の関数定義。これもコンパイルされ、完全に実行されます。

私が取った次のステップは、関数定義を独自の個別の.cppファイルにカットすることでした。この.cppファイルに加えられた唯一の追加は、いくつかの追加のインクルードを先頭に追加する必要があることでした(具体的にはiostreamとcstdlib)。また、matrix.hファイルも含まれていました。

この構成では、コードをコンパイルして実行しようとすると、Dev-C++でリンカーエラーが発生します。具体的には、それらは次の形式です。

[リンカーエラー]未定義の参照matrix <bool>::matrix(int, int)

そして、コードは実行されません(明らかに)。どうすればこれを修正できますか?前もって感謝します。

編集:これは、テンプレート化されたクラスであり、matrix.cppファイルのスコープ内でテンプレートがbool型に導入されていないことが原因であることが判明しました。ここで、多くのコード行を追加せずにこれを修正して、各関数が指定された各タイプを個別に受け入れるようにする方法を理解したいと思います。ああ、ヘッダーで関数を定義できることを感謝しています。しかし、私たちはそれをするつもりはなかったと思いましたか?宣言を含めるだけだと思いました。