問題タブ [linker]
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++ - リンクの問題 (VC6)
ライブラリとそのテスト ハーネスである古いワークスペースを開きました。以前は正常に動作していましたが、現在は動作せず、古いバージョンのコードも同じエラーで動作しません。プロジェクトを再作成しようとしましたが、同じエラーも発生します。プロジェクト設定に異常はなく、生成されたコードはメイン アプリで動作します。
ほとんどのファイルを削除し、エラーを生成するために最小限に抑えました。残念ながら、これは製品コードで使用されているため、プロジェクトを投稿できません。
通常、LNK2001 リンカー エラーは、ライブラリを中断したか、仮想関数の実装を忘れたことを意味します。ただし、これは標準テンプレート ライブラリの一部であり、そのヘッダーです。
IOCompletionPort.obj で問題があるとリストされているコードは、実際にはstd::string
直接使用していませんが、次のことを行うクラスを呼び出します: a とorの値をComms::Exception
受け入れます。std::string
GetLastError
WSAGetLastError
エラー ( GetMessage
) に記載されている関数は実装されていますが、仮想関数であるため、必要に応じて他のクラスがオーバーライドできます。ただし、コンパイラはそれを Ansi バージョンとして作成したようですが、それを制御する設定のオプションが見つかりません。それが問題かもしれないと思いますが、ライブラリのオプションがほとんどないため、確実に知る方法がありません. ただし、どちらのプロジェクトもコンパイラ オプションで _MBCS を指定します。
--------------------構成: TestComms - Win32 デバッグ-------------------- リンク中... Comms.lib(IOCompletionPort.obj): エラー LNK2001: 未解決の外部シンボル "public: virtual class std::basic_string,class std::allocator > __thiscall Comms::Exception::GetMessageA(void)const " (?GetMessageA@ Exception@ Comms@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) Debug/TestComms.exe : 致命的なエラー LNK1120: 1 つの未解決の外部エラー実行中link.exe.
TestComms.exe - 2 つのエラー、0 の警告
助言がありますか?私はこれで午前中のほとんどを失いましたが、午後もほとんど失いたくありません。
linker - 混合モード アプリケーションをリンクするには、どのライブラリが必要ですか?
.NET サポートを C++ アプリケーションに統合しています。
これは昔ながらの MFC アプリケーションであり、CWinFormsControl を参照する "/clr" オプションを使用してコンパイルされた 1 つの追加ファイルがあります。
リンカー フラグ "/NODEFAULTLIB" を削除することはできません。
(Visual Studio ではなく、独自のビルド管理システムを使用しています。)
つまり、必要なすべてのライブラリ (VC ランタイムと MFC) を指定する必要があります。
その他のコンパイラ オプションには、「/MD」が含まれます
次に: リンカー フラグ "/FORCE:MULTIPLE" を使用できず、すべてを追加するだけです
。重複しないライブラリ セットを探しています。
c++ - リンク エラーをデバッグするためのベスト プラクティス
C++ でプロジェクトをビルドするとき、特に他の人のコードを拾うときは、リンク エラーのデバッグが難しいことに気付きました。リンクエラーをデバッグして修正するために人々はどのような戦略を使用しますか?
c++ - Visual Studio Express 2005 で完全に静的にリンクされた .exe を作成するにはどうすればよいですか?
私が現在好んで使用している C++ 環境は、無料で非常に優れた Microsoft Visual Studio 2005 Express エディションです。ときどき、リリース .exe ファイルを他の人に送信して、満足のいく結果を得ています。しかし最近、私は、喜ばしい結果が私が望むより多くの運に基づいているという不穏な発見をしました. これらのプログラムの 1 つを古い (2001 年ヴィンテージ、入念に更新されていない) XP ボックスで実行しようとすると、厄介な「システムは x.exe を実行できません」(または同様の) メッセージしか表示されませんでした。
いくつかのグーグル検索により、このツールセットでは、静的リンクを指定しても、実際には追加の .dll ファイル (msvcm80.dll など) に依存する単純な hello-world.exe になることが明らかになりました。信じられないほど精巧なバージョン スキーム システム (マニフェスト ファイルはありますか?) は、正確に正しい .dll バージョンがないと .exe を実行できません。私はこのようなものを望んでいないか、必要としていません。私は、最小公分母のWin32操作だけを行い、古いwin32 OSで実行される、昔ながらの自己完結型の.exeが欲しいだけです。
既存のツールセットでやりたいことを実行できるかどうかは誰にもわかりませんか?
ありがとうございました。
c# - C# での静的リンク
私はCMS用のモジュールに取り組んでいます。このモジュールは、クラス ライブラリ DLL として配布されます。
このモジュールで使用したいユーティリティ ライブラリがいくつかあります。これらのライブラリを静的にリンクできるので、いくつかの DLL を配布する必要はありません (それによって、ユーティリティ ライブラリを個別に配布します)。
DLLを1つだけにしたいのですが。
c++ - C/C++ ライブラリの混合
Visual C++ で作成されたライブラリに対して gcc をリンクすることは可能ですか? もしそうなら、そうすることから生じる可能性のある衝突/問題はありますか?
gcc - ライブラリがリンクされている順序によって GCC でエラーが発生することがあるのはなぜですか?
ライブラリがリンクされている順序によって GCC でエラーが発生することがあるのはなぜですか?
c++ - ビルドスクリプトの出力から依存関係ツリーを解析する方法はありますか?
ビルドスクリプト(makeではなく)を使用してプロジェクトをビルドし、さまざまなライブラリにリンクする継承されたプロジェクトがあります。
ビルドを実行するときに、ビルド出力を解析して、最終的な実行可能ファイルにリンクされている実際の静的ライブラリがどこにあり、どこから来ているのかを判断したいと思います。
スクリプトはコンパイルされ、GNUツールとリンクしています。
c++ - .map ファイルからメモリ レイアウトをグラフィカルに表示するにはどうすればよいですか?
私の gcc ビルド ツールチェーンは .map ファイルを生成します。メモリ マップをグラフィカルに表示するにはどうすればよいですか?
visual-studio-2008 - VS 2005 & 2008 ライブラリ リンク
VS 2005 でコンパイルされた静的ライブラリ (.lib) を VS 2008 でコンパイルされたプログラムにリンクすることは正しいですか? ライブラリと私のプログラムは両方とも C++ で書かれています。このプログラムは、Windows Mobile 6 Professional エミュレーターで実行されます。
これは機能しているようで、リンクエラーはありません。ただし、リンクされたライブラリ内で奇妙なことが起こるため、プログラムは起動時にクラッシュします。たとえば lib は、大きな負の数のサイズを持つ文字のベクトルを返すことができます。
プログラムが VS 2005 でコンパイルされている場合、このような問題はありません。
さらに奇妙なのは、ビルドにリリース構成を使用する場合にのみ問題が発生することです。デバッグ構成を使用してコンパイルすると、問題は発生しません。