問題タブ [undefined-reference]

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 投票する
1 に答える
394 参照

c++ - 最小限の C++/SWIG/Lua コードで共有 dll を使用するとリンケージ エラーが発生する

これは、C++、SWIG、および Lua に関連する、非常に特殊なコンパイルの問題です。

私は本当に単純な基本コードを持っています:

[ AClass.hpp ]

[ AClass.cpp ]

[ main.cpp ]

この時点で、コンパイルに問題はありません。最初にlibengine.dllでクラスをコンパイルし、次に共有ライブラリを使用して実行可能ファイルをビルドします。

SWIG モジュールを導入して、それを dll に追加しましょう。

[ AClass.i ]

今後、実行可能ファイル内のすべてをリンクすると、次のエラーが発生しました。

誰にも手がかりがありますか?nmを使用して dll を調べてみましたが、別の.oを共有ライブラリに追加してメソッドを「非表示」にする方法がわかりません (これはコンストラクターに固有のものではありません) 。


コンテキストを再現するために、テストをビルドするためにディレクトリに配置するために必要なファイルを次に示します。

最後に、Makefile の内容は次のとおりです。

これは、Windows Seven、MingGW g++ v4.5.2、SWIG 2.0.2、および Lua5.1 でテストされました。

編集: tcl への SWIG エクスポート時にも問題が発生します。ただし、Linux でのコンパイルにはまったく問題はありません。生成された AClass_wrap.cxx を比較しましたが、似ています。

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

android - `std::basic_string への未定義の参照

cygwin を使用して C++ ファイルをコンパイルしようとしています。\ファイルはコンパイルされますが、リンク時にエラーが発生します この種のエラー...

そして、次のようないくつかのエラー

私を助けてください?

ありがとうございました。


ユーザーがasp.netでmysitename.comと入力すると、URLにリダイレクトされます

私は自分のウェブサイトをasp.netでデザインし、ウェブサーバーでホストしました。ユーザーがhttp://www.mydimainName.comに mydimainName.com と入力する場合、ユーザーを自分のサイトにリダイレクトしたいと考えています。誰かが解決策を持っている場合は、私に知らせてください。

ありがとう、

ムニッシュ

0 投票する
5 に答える
38452 参照

c++ - `__gxx_personality_sj0`への未定義の参照

このコードを実行しようとするときのgcc4.6の場合:

次のエラーが発生します:
1。未定義の参照__gxx_personality_sj
2.未定義の参照_Unwind_SjLj_Register
3.未定義の参照_Unwind_SjLj_Unregister
4.未定義の参照_Unwind_SjLj_Resume

一体何が起こっているの?!

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

android - Android jni ndk-build----------> `std::allocator への未定義の参照::アロケータ()'

android jni ndk-build----------> エラー: `std::allocator::allocator()' への未定義参照

「APP_STL := gnustl_static」を使用して、project/JNI/ の下に Application.mk を作成しました。

だから、どんなアイデアでも、なぜ未定義の参照なのか。

環境はubuntu10.4、THE NDKはr5b、

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

c++ - Code::Blocksで.cppファイルをリンクする際の問題

cnVector.cppで実装が記述されているcnVector.hというヘッダーファイルがあります。これらの2つのファイルは同じディレクトリにあります。

ヘッダーには、単純なクラス定義が含まれています。

.cppファイルの実装は次のとおりです。

ここで、main.cppの次のコードは、 cnVector :: cross(cnVector const&)const;への未定義の参照が原因で、3行目で壊れています。 コンストラクターの実装は認識されますが、メソッドは認識されないことに注意してください。
cnVector::cross

また、エラーメッセージの警告が表示されます。インライン関数'cnVector cnVector :: cross(const cnVector&)const'が使用されていますが、定義されていません
実装をmain.cppにコピーすると機能します。

cnVectorインスタンスを作成できるのに、他のメソッドの実装が認識されない理由を説明していただけますか?

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

c++ - boost::program_options未定義の参照

私はubuntu10.04とlibboost1.40を使用しています。

これはmain.cppです(テスト用のみ)

私がやります

そして、couseのプロトタイプしかありません。何か案は?

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

c++ - Eclipse で 1394cmu の「_imp___ZN11C1394Camera10InitCameraEi」への未定義の参照

このプログラムを Opencv と 1394cmu で使用して、firewire からビデオ ストリームを取得しています。しかし、プロジェクトをコンパイルすると、いくつかのエラーが発生します。ライブラリはEclipseに正しくインポートされています。実際、オブジェクトのメソッドが表示され、2つのddlも正しくインポートされているため、ここに問題があるとは思いません

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

c++ - g++リンクエラー-回避策が機能する理由


私は大きなプロジェクトで働いています。そして今、リンクエラーが発生します。
このエラーは回避策で回避できますが、なぜ機能するのか理解できません。

これが私の問題に関連するファイル構造です:


package_aのすべての*.oはaaにパックされ、package_bの*.oはbaにパックされます。

"g++ -o exec -Bstatic b.a a.a ..."バイナリを生成するために使用されます。

package_b / b.cppに、関数foo()を追加しました。
そしてpackage_a/a.cppで、私はこの関数を使用しました。

しかし、ここでは、aoでのfoo()の未定義の参照を示すリンクエラーが発生します
。foo()がすでにboにあることを(objdumpによって)確認できます。

linkコマンドをに変更すること"g++ -o exec -Bstatic a.a b.a ..."で、バイナリを正常にビルドできます。リンカがリンケージリストの順序を気にすることを理解しました。ただし、これは大きなプロジェクトであり、プロジェクト構成を変更する権限がないため、元のリンク順序を維持する必要があることを理解してください。

次に、package_b / c.cppにダミー関数bar()を追加しました。これは、foo()を呼び出すだけで"g++ -o exec -Bstatic b.a a.a ..."、リンクエラーなしでoriginalが実行されます。

この場合、同じパッケージにダミー関数を追加するだけで機能する理由を誰かに教えてもらえますか?

g++4.4.4とlinux2.6.18-194.el5を使用しています

コメントをいただければ幸いです

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

c++ - libstatgrabの問題

libstatgrabの使用に問題があります-コンパイル時に次のエラーが発生します。

"libstatgrabTest.cpp:16: undefined reference to sg_get_process_stats"

確かではありませんが、リンク状態で.soファイルを含める必要があるためだと思います。以下に示すように、私は現在statgrab.hヘッダーファイルをインクルードしています。私configured && make && make installは図書館のために演奏しました。

libstatgrab *を検索すると、次のことがわかります。

statgrab *をもう一度検索すると、次のようになります(関連アイテムのみ)。

コンパイル時に、次のコマンドを実行します。g++ -g -c libstatgrabTest.cpp

リンク時に、次のコマンドを実行します。g++ -L/usr/local/lib libstatgrab.o -o libstatgrabTest

私が間違っていることについて何か考えはありますか?内のコードをlibstagrabTest.cpp以下に示します。

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

c++ - 複数のファイルの問題に関するテンプレート

こんにちは、テンプレート クラスをファイルに整理する方法がわかりません。私はC++ テンプレート、未定義の参照を調べ、 http://www.parashift.com/c++-faq-lite/templates.html#faq-35.12に あるヒントを使用して、ヘッダー ファイルと実装ファイルを分離しようとしています。

変数は私の最上位クラスです。簡潔にするためにいくつかの関数を削除しました。

私の実装:

ここで、valid_units と conversion が指す場所が異なるこのクラスの特殊なインスタンスを作成できるようにしたいと考えています。これをコンストラクターのオプションとして指定できることはわかっていますが、これらの多くが作成される可能性があるため、単純なコンストラクターが必要でした。 . そう:

一番下の実装ファイルで、parashift FAQ で提案されているように、使用しようとしていた 2 つのテンプレート クラス宣言をコメントアウトしました。これらの行でコンソール エラーが表示されます。

\

メインに宣言を含めないと、最初に作成しようとするとエラーが発生します。Pressure<float, double>::~Pressure()' - undefined reference toこの行に複数のマーカー - Pressure::Pressure(float, std::basic_string, std::allocatorへの未定義の参照

)'

申し訳ありませんが、この時点で与えられたすべての関連情報を含めるようにしたかったので、手がかりがありません. 実装をヘッダーに移動する必要がないことを願っています。