問題タブ [linker-warning]
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++ - LNK4075:「/ OPT:ICF」指定のために「/EDITANDCONTINUE」を無視します
最近、マルチプロジェクトのVisual Studioソリューションを変換して、各プロジェクトで.libsの代わりに.dllsを使用しました。ただし、例に示されているように、プロジェクトごとにリンカーの警告が表示されます。MSDNは、これに関してそれほど役立つものではありませんでした。これはなぜですか、どうすれば解決できますか?
警告2警告LNK4075:「/ OPT:ICF」仕様LudoCamera.objのため、「/EDITANDCONTINUE」を無視します
c++ - ヘッダーガードとLNK4006
ヘッダーに文字配列が定義されています
#define されている場合、ヘッダーは保護され、先頭に #pragma once があります。このヘッダーが複数の場所に含まれている場合、LNK4006 - char const * * temp already defined in blahblah.obj を取得します。それで、これについていくつか質問があります
- 警備員を配置しているのに、なぜこれが起こるのですか? 最初のアクセス後にヘッダーが読み取られないようにしていると思いました。
- このヘッダーの多数の列挙型が LNK4006 警告を出さないのはなぜですか?
- 署名の前に static を追加すると、警告は表示されません。このようにすることの意味は何ですか。
- エラーを回避するためのより良い方法はありますが、ヘッダーで配列を宣言できます。配列定義のためだけに cpp ファイルを用意するのは本当に嫌です。
gcc - GCC リンカーの警告をどのように抑制しますか?
私は最近、コードから警告を排除するための十字軍に参加しており、GCC 警告フラグ ( 、 、 など) に慣れてき-Wall
まし-Wno-<warning to disable>
た-fdiagnostics-show-option
。ただし、リンカーの警告を無効にする (または制御する) 方法を理解できませんでした。私が受け取っていた最も一般的なリンカの警告は、次の形式です。
これを取得した理由は、使用していたライブラリが可視性を使用して構築default
され、アプリケーションが可視性を使用して構築されたhidden
ためです。hidden
ライブラリを可視化して再構築することでこれを修正しました。
ただし、私の質問は次のとおりです。必要に応じて、その警告をどのように抑制しますか? それを修正する方法を見つけたので、今私がする必要があることではありませんが、その特定の警告、または一般的なリンカの警告をどのように抑制するかについてはまだ興味がありますか?
C/C++/linker フラグのいずれかにを使用し-fdiagnostics-show-option
ても、他のコンパイラの警告と同様に、その警告がどこから来たのかはわかりません。
c - dlerror: FreeBSD 7.2 で未定義のシンボル "_nss_cache_cycle_prevention_function"
RTLD_LAZY を渡す dlopen() を使用して .so ファイルを動的にロードする ANSI C プログラムがあります。私は受け取ります
FreeBSD 7.2 で .so ファイルがアクセスされるたびに警告が表示されます。nss_cache_cycle_prevention_function() は私のプログラムの関数の 1 つではなく、FreeBSD から来ているに違いないと思います。これは Linux でも問題になる可能性がありますが、Linux では問題が発生していません。FreeBSD 固有のヘッダー ファイルを自分のプログラムにロードしたくありません。この関数を移植可能な方法で含めるか、これらの警告を抑制したいと思います。
c++ - Visual Studio C++ リンカーの警告: C ランタイム (CRT) での LNK4006
私はこの質問をしてから、自分で答えます。私は、それが初心者の質問であることを認識していますが、それは私に約かかりました。正解を見つけるのに2日かかりますが、とにかく投稿します。
免責事項は以上です。これは、すべての初心者に捧げられています。
私は VS 2010 で MFC プロジェクトに参加しましたが、サードパーティの静的ライブラリを追加する必要がありました。すべてがうまくいき、両方のプロジェクトがコンパイルされ、私のプロジェクトがライブラリを参照することができました。次に、ライブラリのヘッダー ファイルをプロジェクトにインクルードすると、C ランタイム ライブラリの関数に関する多くのリンカー警告が表示されました。
警告 9 警告 LNK4006: _sprintf は既に libcmtd.lib(sprintf.obj) で定義されています。2 番目の定義は無視されます C:path\to\my\project\MSVCRTD.lib(MSVCR100D.dll)
「なんてこった」と考えて、プロジェクトを実行しようとしましたが、「fostream」を使用してファイルに書き込もうとするコード行に遭遇するまで実行され、恐ろしいヒープ破損例外でクラッシュしました。
SOを検索すると、関連する問題がいくつか見つかりましたが、どれも私の問題と正確には一致しません:
- LNK4006 を取得せずに、Visual C++ の依存関係を持つライブラリをリンクする
- リリース ビルド ライブラリ (MSVCRT.lib) に対してデバッグ .exe (MSVCRTD.lib) をビルドするにはどうすればよいですか?
答えに出くわす前に、外部ライブラリをdllでほぼラップしました。
c++ - Visual Studio リンカーの警告 LNK4098
リリース構成でプロジェクトをビルドすると、次の警告が表示される dll プロジェクトがあります。
MSVCRT.lib(cinitexe.obj): 警告 LNK4098: defaultlib 'msvcrtd.lib' は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリを使用
これは単なる警告ですが、これを考慮に入れる必要があるかどうかはわかりません。
私が発見したことでは、それらは両方ともマルチスレッド ライブラリであり、通常バージョンとデバッグ バージョンです。私のdllはマルチスレッドを使用しており、デバッグできますが、boost:threadを使用しているため、デバッグまたはリリースビルドにこのWindows固有のライブラリが必要かどうかは本当にわかりません...
敬具、アレックス
さて、BuschnicK が提案したとおりに実行し、/VERBOSE:LIB リンカー フラグを使用して、デバッグ構成でこれらのライブラリにリンクしていることを発見しました。
boost_filesystem-vc100-mt-gd-1_44.lib: libboost_system-vc100-mt-gd-1_44.lib: libboost_thread-vc100-mt-gd-1_44.lib: libboost_date_time-vc100-mt-gd-1_44.lib:
主に「明示的に」指定しなかったため、リリース構成でも同じでした。したがって、リリースでこれらを次のように変更しました。
boost_filesystem-vc100-mt-1_44.lib: libboost_system-vc100-mt-1_44.lib: libboost_thread-vc100-mt-1_44.lib: libboost_date_time-vc100-mt-1_44.lib:
それはうまくいったようですが、リリース構成にも_DEBUGプリプロセッサ定義があることに気付くまで、まだ最初の警告が表示されていました。
みんな助けてくれてありがとう!!
iphone - Xcode -- ライブラリでのリンカの警告 -- Debug-iphonesimulator と Debug-iphoneos の比較
ライブラリを使用してプロジェクトを構築しています。私が作っているのはデバッグ版です。ライブラリは、次のディレクトリにビルドされます。
LibraryPath/build/Debug-iphoneos
メイン プロジェクトをリンクすると、次の警告が表示されます。
-L に続くディレクトリ 'LibraryPath/build/Debug-iphonesimulator' が見つかりません
Xcode はすべてを検出し、ビルドは問題なく動作しますが、警告は煩わしいものです。どうすればそれを取り除くことができますか?
c++ - ZLib.lib(d000062.o): 警告 LNK4078: 複数の '.text' セクションが異なる属性で見つかりました
彼らのWebサイトからzlibをダウンロードしましたが、タイトルからリンク警告があります。zlib もコンパイルしましたが、同じ警告が表示されます。どうすればこれを修正できるか知っていますか? 私は私のプロジェクトでどんな種類の警告も好きではありません:)
Visual Studio 2010 を使用しています。
cmake - cmake を使用して --enable-auto-import 警告を削除する方法
このリンカー警告が表示されます。cmakeを使用して修正するにはどうすればよいですか? ここに私のルート CMakeLists.txt があります:
mysql - mysql-connector-c/libmysqlclient/mysql C API に対してアプリケーションをビルドする際のリンカー警告
ソースから mysql-connector-c をビルドし (こちらの手順に従って)、アプリケーションのライブラリに静的にリンクしようとしています。ただし、次の警告が表示されます。これがなぜなのかについて誰か考えがあるかどうか疑問に思っていました。
関連する引数/フラグの一部を次に示します。
ライブラリをビルドするために、CMake が次のように渡されます。
-G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/path/to/my/install/root -DCMAKE_C_FLAGS="-m64" -DCMAKE_CXX_FLAGS="-m64"
アプリケーションをビルドする場合: