問題タブ [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.
c++ - picとパイの違い
バイナリ暗号化コード生成のオプションを探しているところ、PIC と PIE という 2 つのオプションが利用可能であることがわかりました。両方の違いを見つけようとしましたが、適切な記事が見つかりませんでした。誰かが長所とトウモロコシの例で違いを説明したり、良い記事へのリンクを提供したりできるなら、学ぶのは素晴らしいことです.
私の基本的な動機は、コンパイルされたコードを保護することです。ELF/PE 形式はウイルスに攻撃されたり、ハッキングされたり、リバース テクニックを使用してコードが再生成されたりする可能性があるためです。また、コンパイルされたコードを攻撃や d-compling から保護するための他の手段も提供してください。
クロスプラットフォームアプリケーションを構築するために、Cygwin を介して GCC コンパイラを使用しています。
ios - 利用可能なリンカ フラグと iOS での使用
iOS で使用できるリンカー フラグと少し混乱しています。
この質問は、よくある質問によると、適切な質問ではないかもしれませんが、リンカー フラグについては何も知らないので、興味があります。だからこそ、ここで質問します。
ObjC
-linker フラグの用途は何ですか?- の用途は
-all_load
何ですか? - の用途は
-force_load
何ですか?
iOS で使用できる、よく使用されるその他のリンカー フラグは何ですか?
リンカーフラグの使用法を理解するのを手伝ってください。前もって感謝します。
c++ - g++47 で -z multidefs を許可する方法
g++
シンボルの複数の定義を許可するようにリンカーに指示するにはどうすればよいですか (最初の出現を選択します)。
-z multidefs 複数のシンボル定義を許可します。デフォルトでは、再配置可能オブジェクト (.o ファイル) 間で複数のシンボル定義が発生すると、致命的なエラー状態になります。このオプションは、エラー状態を抑制し、最初のシンボル定義を取得できるようにします。このオプションは、-b svr4 オプションが指定されている場合にのみ有効です。
この-zmuldefs
オプションは 、または によって認識されg++
ません-z OPTION
。正しいパラメータは何ですか? 出来ますか?
visual-studio-2012 - /DEF および /NODEFAULTLIB の CMAKE
CMAKE を介して vs2012 プロジェクトにリンカー フラグ "DEF" および "NODEFAULTLIB" を追加するにはどうすればよいですか?
linker - どのように「未知のクラスInterface Builderファイルのエラーは、「[MyClassクラス]」という行で修正できますか?
次の回答を読んだので、「Interface Builder ファイル内のクラスが不明です」という-ObjC
エラーは、リンカー オプションを使用して解決できることがわかりました。(参考までに、MyClassは静的ライブラリにあります。)
https://stackoverflow.com/a/6092090/534701
オプション[MyClass class]
を使用せずに、App Delegate の1 行のコードで同じ問題を処理できることもわかりました。私の質問は、コードが機能する理由です。-ObjC
上に添付した回答によると、静的ライブラリのシンボルが読み込まれていないため、エラーが発生します。[MyClass class]
では、リンカーに実行時にシンボルをロードさせるということですか? (これは意味がありません)
c++ - FORTRAN と C++ の組み合わせ、リンク エラー
linux
1 つの C++ コードを古いコードと結合する必要があります。fortran
ここfortan
でメイン コードです。私はこの分野の専門家ではなく、簡単なテストから始めようとしていますが、それでもコンパイルできません。私はばかかもしれませんが、実際の例はどこにも見つかりません。リンクをifortで実行できる場合、fortranとcをコンパイルすることができました(後で実際のfortranコードでインテルコンパイラーを使用する必要があります)。しかし、私の理解が正しければ、c++
では、リンクはc++
コンパイラ ( g++
) によって行われる必要があります。
だから私はここで何が間違っているのですか:
私のFORTRANテストコード「ftest.f」:
そしてC++コード「ctest.cpp」
私は次のようにコンパイルしようとします:
そして、私はエラーが発生します:
では、このプログラムのリンクを成功させるにはどうすればよいでしょうか?
c++ - リンカの構文 : リンカは、リンク中にすべてのリンカのフラグを使用するわけではありません
私はmakefileプロジェクトを研究しています。私は gnu gcc を使用しており、リンカとして、次の引数で gcc を使用しています。
linkerCmdLine=$(exe) -Wl,--start-group -nostdlib -Map=test_mapfile.map -l:libc.a -l:libgcc.a -l:libm.a -Wl,--end-group -o $(出力)
リンク プロセス中、リンカーはこのフラグのすべてを使用しません。フラグ-Map=test_mapfile.map
は使用されません。
どうして??
プロジェクト設定ファイルがあり、このファイルにはリンカー設定も保存されています。
\u201ClinkerCmdLine\=$(exe) -Wl, --start-group -nostdlib -Map\=./99_output/PUZ_GPF.map --gc-sections -l\:libc.a -l\:libgcc.a -l \:libm.a -Wl,--end-group -o $(出力)\u201D
設定を正しく保存するにはどうすればよいですか?
編集:
マップ ファイルでは正常に動作しますが、実際にはリンカー ファイルに問題があります。次のフラグのみを使用します。
"linkerCmdLine=$(exe) -Wl, --script=C:/workspace/test_project/test_linker_file.ld -static -o $(output)"
コンソール ウィンドウに次のエラーが表示されます。
arm-none-eabi-gcc.exe: エラー: 認識できないコマンド ライン オプション '--script=C:/workspace/test_project/test_linker_file.ld'
マップ ファイルと .ld ファイルはリンカー フラグに属しているため、理由がわかりません。