問題タブ [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.
c - 複数の CUDA ファイルをまとめてコンパイルしようとすると、リンク エラー LNK2005 が発生する
正常に動作する CUDA プログラムがありますが、現在はすべて 1 つのファイルに書き込まれています。メンテナンスとナビゲートを容易にするために、この大きなファイルをいくつかの小さなファイルに分割したいと考えています。
新しい構造は次のとおりです。
.cuh
ヘッダー ファイルには構造体と関数プロトタイプが含まれ、ファイル.cu
には (通常どおり) 関数定義が含まれます。メイン ファイルにはbar.cuh
、およびbar.cu
が含まれますfoo.cuh
。CUDA 関数を使用できるようにするために、すべての .cu ファイルには cutil_inline.h が含まれています。
したがって:
問題は、Visual Studio 2008 プロジェクトをこの新しい構造でコンパイルすると、大量のリンク エラーが発生することです。
私はそれらの意味を理解しています (既に定義されているすべてのシンボルは cutil_inline.h の一部です) が、このヘッダーをすべてのファイルに含める必要があります。そうしないと、コンパイルされません。私は何を間違っていますか?
更新: 状況を明確にするために: * 1 つの大きなファイル内のすべてのコードで、コンパイル、リンク、正常に実行されます * 新しい構造 (いくつかの小さなファイル) を使用し、すべての .cu ファイルに cutil_inline.h を含めると、正しくコンパイルされますが、 * 新しい構造でリンクし、メイン ファイルにのみ cutil_inline.h をインクルードすると、cutil_inline.h がインクルードされていないファイルで cutil 関数が不明であると言って、コンパイル時に失敗します (予想どおりですが、すべてを試す必要がありました)。 - リスト項目
c++ - boost.asioの例をコンパイルするときのリンカーエラー
boost.asioの例をコンパイルしようとしていますが、次のリンカーエラーが発生します:「_Unwind_Resume'" and "undefined reference to
__gxx_personality_v0'への未定義の参照」。私は長い間グーグルを検索してきましたが、何も役に立ちませんでした。どのライブラリをリンクする必要がありますか?前もって感謝します!
c++ - LNK2005 グローバルな new および delete 演算子を上書きしようとするとエラーが発生します
問題なくコンパイルおよびリンクされている C++ プロジェクトがあります。最近、グローバルな new および delete 演算子をオーバーライドするコードを追加したところ、プロジェクトがエラーでリンクできなくなりました。
エラー LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) は既に定義されています。
私は MS KB148652 を認識しており、それが示唆することを実行しました。Nafxcwd.lib と Libcmtd.lib を追加の依存関係に配置し、特定のライブラリを無視します。他の以前のリンカーエラーを排除するために追加する必要があったため、実際には既に存在していました。すべての .cpp ファイルの最初のインクルードが (KB148652 が示唆するように) stdafx.h であることを確認しましたが、何も機能していないようです。
誰かが別のアプローチや私が試したことのない方向性を提案できる場合は、それについて知っていただければ幸いです。前もって感謝します。
c++ - リンク エラー: 未定義のシンボル、多数 (cpp クロス コンパイル)
最後のリンク コマンド (実際の実行可能ファイルがリンクされています) に到達しますが、未定義のシンボルが大量に発生します (それらは cpp にあり、単純な C プログラマーである私にはとても恐ろしく見えます)。
--おそらく単純なものですが、リンカとして配置する必要があるものを取得できません(ここでgccを使用しています...?それは適切ですか?g++は入力ファイルが多すぎると言っていました笑)(ldはほとんど同じものを返します)
とにかくばかげている、私は完全に立ち往生している
ご協力ありがとうございました!
visual-c++ - x64 (Visual Studio 2008) 環境で x86 コードをビルドしていますか?
x86用のライブラリ(poco-1.3.6p2-all、価値がある)を構築したい。新しい (クリーンな) Windows 7 64 ビット マシンをセットアップし、Visual Studio 2008 Standard をインストールしました。このボックスにこれまでにインストールされたもので、インストール エラーが発生したものはありません。
同じライブラリが、VS 2008 Standard がインストールされた Windows XP 32 ビット システムで問題なく構築されています。ええ、すべてアンマネージ C++ です。
私が得ているエラーは、プロジェクト内の個々の DLL のすべてのリンクにあります。例:
問題のライブラリは、.cmd ファイル ビルド スクリプトから呼び出される .vcproj ファイルからビルドされます。
コンパイラ オプション (コマンド ライン) は次のようになります。
プロジェクト オプションのリンカー コマンド ラインは次のようになります。
(私には) リンカーが x86 オブジェクト ファイルを認識しているように見えますが、コマンド ライン オプションが正しいにもかかわらず、x64 モードで呼び出されています。
ターゲットを x64 ではなく 32 ビット/x86 タイプにする必要があります。
これを修正する Visual Studio オプションはありますか?
c++ - 非メンバー関数への未定義の参照 - C++
ヘッダーファイルに次のものがあります。
CPP ファイル (これには適切なインクルードがあります)
別の CPP ファイル。これにはすべての適切なインクルードがあります。
への参照が未定義であるというリンカ エラーが表示されload_from_file
ます。ここで何が問題なのかわかりません。
どんな助けでも大歓迎です。
コンパイラ: G++ OS: Ubuntu 9.10
編集
使用したリンカー コマンドは次のとおりです。
エラーは からpattern_token_map_tests.o
で、関数は で使用できますpattern_token_map.o
。したがって、リンクの順序は問題ではないと思います。(コマンドを簡略化するために、コマンドからいくつかのファイルを削除しました)
visual-studio - MSVCRTD.lib(cpu_disp.obj): 警告 LNK4210: .CRT セクションが存在します。未処理の静的イニシャライザまたはターミネータがある可能性があります
この質問は以前にも出てきましたが、良い答えが見つからなかったので、ここで試してみます。
純粋な C dll (Win32) を使用していますが、コンパイル時に次の警告が表示されます。
MSVCRTD.lib(cpu_disp.obj): 警告 LNK4210: .CRT セクションが存在します。未処理の静的イニシャライザまたはターミネータがある可能性があります
すべてがうまくいっているようですが、私はそれを理解していないので、この警告について心配しています. かなりの数の静的変数がありますが、「.CRT セクションが存在する」という意味がわかりません。
この警告をなくすには、どのようなアプローチを取る必要がありますか。libs msdn を追加しようとすると、大量のリンカー エラーが発生することが示唆されます。
c++ - #ifndef で防いでいるのにリンカエラー
#ifndef と #define を使用していないことを示唆するリンカー エラーが表示されます。
1>TGALoader.obj : エラー LNK2005: "struct TGA tga" (?tga@@3UTGA@@A) は既に main.obj で定義されています 1>TGALoader.obj : エラー LNK2005: "struct TGAHeader tgaheader" (?tgaheader@@3UTGAHeader @@A) main.obj で既に定義されている 1>TGALoader.obj : エラー LNK2005: "unsigned char * uTGAcompare" (?uTGAcompare@@3PAEA) main.obj で既に定義されている 1>TGALoader.obj : エラー LNK2005: "unsigned char * cTGAcompare" (?cTGAcompare@@3PAEA) は main.obj で既に定義されています 1>LINK : 警告 LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリを使用
nehe opengl チュートリアルのヘッダー ファイル Texture.h と tga.h をプロジェクトに含めました。私は持っている
私の tga.h ファイルで。これを複数回含めると、上で貼り付けたリンカーからエラーが発生します。最初の 2 つは texture.h からのものですが、状況は同じです。
何が間違っているかについてのアイデアはありますか?
visual-studio - Armadilloを使用してVisualStudio2008プロジェクトでLAPACKを使用するにはどうすればよいですか
線形代数の計算にオープンソースライブラリhttp://arma.sourceforge.netを使用しようとしています。pinvのようなArmadilloの関数のいくつかはLAPACKを使用します。Armadilloを使用してpinvを計算するための非常に単純なコードを記述しましたが、実行時エラーが発生します。これはおそらく、slnファイルにLAPACKリンカーフラグがないためです。
macos - リンカーが静的ライブラリを検索する方法を理解しようとする初心者の質問
すべてのファイルが同じディレクトリ (デスクトップ) にある作業セットアップがあります。ターミナル出力は次のようになります。
ファイル:
mymath.c:
test.c:
ここで、アーカイブ mymath.a をサブディレクトリ /temp に移動します。リンクを機能させることができませんでした:
私は何が欠けていますか?どのリソースをお勧めしますか?
更新: ご協力ありがとうございます。すべての答えは基本的に正しかった。私はそれについてここにブログを書きました。