問題タブ [linker-flags]
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.
xcode - i386 および x86_64 バイナリ部分の個別のコンパイルまたはリンク オプションを使用して、Mac OS X でユニバーサル ライブラリをコンパイルするにはどうすればよいですか?
Xcode 5.02 で Mac OSX 用の luajit ライブラリ (静的リンクの方法) を使用するプログラムをコンパイルしています。
luajit のランタイム メモリ メカニズムにより、Mac OSX 用の x86_64 ビルドでリンク オプション "-pagezero_size 10000 -image_base 100000000" を追加する必要があります。そうしないと、関数 luaL_newstate() が NULL を返すため、初期化時にクラッシュします。
(クラッシュが発生した理由に関する詳細な技術情報については、この質問投稿のメイン トピックではないため、この URL を参照してください: http://www.freelists.org/post/luajit/luaL-newstate-fails-on-64bit- Mac-cant-set-linker-flags,2 )
しかし、i386 ビルドの場合、このリンク オプションは必要なく、実際には無効です。これは、イメージ ベースが 32 ビット バウンドを超えているためです。
したがって、現在の状況では、単一のアーキテクチャでプログラムを正常にビルドできます (x86_64 アーキテクチャではリンク オプションを使用し、i386 アーキテクチャではリンク オプションなし)。しかし、ユニバーサル バイナリをビルドする方法がわかりません。ユニバーサル バイナリ ビルド設定で、アーキテクチャごとに個別のリンク オプションを指定する場所。
誰でもこの問題を解決する方法を知っていますか?
ありがとうございました!
gcc - gcc リンカー マップ ファイルは何に使用されますか?
gcc/g++ リンカ オプション "-Map" によって生成される ".map" ファイルは何に使用されますか? そして、それらをどのように読むのですか?
gcc - CMakeにリンカーフラグを追加する代わりに追加する方法は?
CMake は、リンカー フラグを GCC コンパイル コマンドの最後に追加するのではなく、先頭に追加するようです。CMakeにリンカーフラグを追加させる方法は?
問題を再現する簡単な例を次に示します。を使用する次の C++ コードを検討してくださいclock_gettime
。
これは、上記の C++ ファイルをコンパイルするための CMakeLists.txt です。
-lrt
の定義があるため、追加したことに注意してくださいclock_gettime
。
以下を使用してこれをコンパイルします。
-lrt
コマンドで確認できますが、このエラーがスローされます。
ここでの問題は、CMake によって生成された C++ コンパイル コマンドが-lrt
先頭に追加されていることです。次の場合、コンパイルは正常に機能します。
CMakeにリンカーフラグを最後に追加させる方法は?
c++ - ソースコード内の参照用の関数/変数定義を検索
私のプロジェクトには多くのファイルが含まれています。
特定の関数がソース コードのどこで定義 (実装) されているかを知る必要がある場合があります。私が現在行っているのは、関数名のソース ファイル内でのテキスト検索です。これには非常に時間がかかります。
私の質問は: ソース ファイルでその関数定義を見つけるためのより良い方法 (コンパイラ/リンカー フラグ) はありますか?.
関数は多くの呼び出しに埋もれている可能性があるため、デバッガーで関数呼び出しにステップインするよりも優れたメソッドを望んでいます。
ios - opencv2.framework がリンカー フラグ -ObjC でコンパイルされない
最新バージョンの opencv ( opencv 2.4.9 ) を使用しており、Core Plot (プロット フレームワーク)で必要な-ObjC フラグが必要です。
他のフラグに-ObjCを設定すると、次のようにタイプ : の多くのエラー (実際には 28 個) が発生Undefined symbols for architecture i386
します。
Bartosz Bialeckiと同じ問題です。提案された解決策を試しましたが、問題はまだここにあります。
誰にもアイデアはありますか?
編集 :
ここに私が含めたすべてのフレームワークがあります:
c - /c および /MD オプションを使用して C ファイルをコンパイルし、.lib ファイルをリンクする
3 ~ 4 個の外部ライブラリを使用する C ファイルがあります。cl.exe
and link.exe
(MSVC)を使用して構築されています。
ビルド スクリプトは、exe を生成するプロセスが 2 つの段階にあることを示しています。
cl.exe
ファイルを取得するには、「/c」オプションを使用し.o
ます。これには他にもたくさんのフラグが付けられていますが、私が関心を持っているのは/MD
. MSDN は次のように述べています。
アプリケーションがランタイム ライブラリのマルチスレッド固有および DLL 固有のバージョンを使用するようにします。_MT と _DLL を定義し、コンパイラがライブラリ名 MSVCRT.lib を .obj ファイルに配置するようにします。
コンパイルするだけで、リンクしていない場合、/MD
withを与えることの用途は何ですか?cl
この後
link.exe
、exeを生成するために使用されます。リンク用にいくつかの.lib
ファイルが指定されています (ole32.lib、advapi32.lib、user32.lib など、およびその他の非 MSVC 固有のものなど)。私の質問は.lib
、静的リンクに使用されるファイルではないということですか? はいの場合、最終的な exe が約 500 KB しかないのはなぜですか? のいずれ.lib
もインポート ライブラリではありません。そうでない場合、
link
デフォルトで静的または動的リンクを使用しますか?/MD
指定された withcl
はここで効果がありますか?
c++ - libxml++ ライブラリを正しく含める方法は?
このコードを Windows 7 でコンパイルしたい: ( this )
Code::Blocks を使用していますが、エラーが発生します。
そのため、ライブラリを正しくリンクしていないと思いました。私は->プロジェクト->ビルドオプション->コンパイラ設定->その他のオプションに入り、=>を追加しました
- IC:/gdkdir/include/glib-2.0
- IC:/gdkdir/lib/glib-2.0/include
- IC:/gdkdir/lib -lglib-2.0 -lintl
- IC:/gdkdir/include/gtk-3.0
- IC:/gdkdir/include/カイロ
- IC:/gdkdir/include/pango-1.0
- IC:/gdkdir/include/gdk-pixbuf-2.0
- IC:/gdkdir/include/libpng15
- IC:/gdkdir/include/pixman-1
- IC:/gdkdir/include
- IC:/gdkdir/include/freetype2
これを手伝って、ライブラリをダウンロードしました => libxml2 と glibmm2.4 を含めました。
それでも同じエラーが発生します。
私を助けてください。
UPDATE 17/06 :これもチェックしましたが、それでも同じエラーが発生します!
UPDATE 18/06 : それが私がやったことです:
c++ - リンク段階で -lpthread の後に qmake に -lm を追加するにはどうすればよいですか
Qt と Cuda を使用する armhf プラットフォーム (Jetson ボード) でプロジェクトをコンパイルしようとしています。ビルドには qmake を使用します。
リンク時にビルドフェーズを最後まで通過し、以下のエラーで失敗します。プロジェクト ファイルに何を入れようとしても、生成される Makefile の「-lpthread」の後に「-lm」が追加されません。ここで私の問題を解決すると思います。
私が得るエラーは次のとおりです。
誰でもアドバイスできますか?
c++ - configure.ac へのリンカ フラグの追加
--export-dynamic
プロジェクトの configure.ac ファイルにフラグを追加したいと考えています。の後にこのフラグを使用する必要があるプロジェクト ファイルをコンパイルしようとしていますpkg-config --cflags --libs gtk+-3.0
。
以下は、configure.ac ファイルの内容です。
それ、どうやったら出来るの?
c++ - ld の -u オプションはどのように機能し、どのような場合に役立ちますか?
:-の男性のセクションをコピーして貼り付けています。ld
このオプションを実際にどのように使用しますか? ソース コード内の追加モジュールのリンクをトリガーする方法と、このオプションが実際に役立つのはいつですか?