問題タブ [ldflags]

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.

0 投票する
1 に答える
355 参照

c++ - コマンド ラインで visual-c++ を使用して、特定のライブラリを静的にリンクできますか?

具体的には、MingW 環境で visual-c++ を使用しています。LDFLAGS を次のように定義するメイクファイルがあります。

この方法でプログラムを作成した場合、プログラムと共に libtcmalloc_minimal.dll を配布する必要があります。

これがGCCか、私が使用する同類のものであるかどうかを推測しています-staticが、そのフラグはvisual-c ++によって認識されません。このライブラリを強制的に静的に実装する方法はありますか?

0 投票する
0 に答える
2063 参照

linux - ARM 用の openssh のクロス コンパイル

ARM 用に openssh をクロスコンパイルしようとしています。zlib と openssl を正常にインストールしました。openssh パッケージを次のように構成しました。

作成しようとすると、次のエラーが表示されます。

arm-linux-gnueabi-ld -o ssh ssh.o readconf.o clientloop.o sshtty.o sshconnect.o sshconnect1.o sshconnect2.o mux.o roaming_common.o roaming_client.o -L. -Lopenbsd-compat/ -L/usr/opensslarm/lib -L/usr/zlibArm/lib -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -shared-fstack-protector-all -lssh -lopenbsd-compat -lcrypto -ldl -lutil -lz -lnsl -lresolv arm-linux-gnueabi-ld: 認識されないオプション '-Wl,-z,relro'

同じものを検索しようとしましたが、エラーが何であるかを取得できませんでした。makefile の LDFLAGS を変更することを考えましたが、それも役に立ちませんでした。私の LDFLAGS 行は次のようになります。

同じことの可能な解決策は何ですか?

0 投票する
1 に答える
395 参照

mysql - Autoconf M4 スクリプトでターゲット アーキテクチャを決定する

私は現在、i686 ライブラリと x86_64 ライブラリの両方をビルドし、それらを同じシステムにビルドしてインストールする必要があるシステムで作業しています。追加のメモリと、64 用にビルドすると壊れる古いコードを使用できます。

リンクされたライブラリの 99% では、これは問題なく機能します。autoconf、rpm-build、および pkg_config の間で、正しいライブラリが問題なく検出されます。残念ながら、MySQL という大きな例外があります。pkg_config スクリプトを出荷するのではなく、独自のカスタム mysql_config スクリプトがあり、ターゲット ABI を尊重しません。最後にインストールされた ABI の値を報告するだけです。

そのため、64 ビットで適切に動作するように移植された最後のコードを取得する一方で、Autoconf MySQL 構成スクリプト (公式の GNU スクリプト、ax_lib_mysql.m4) を編集して報告された CFLAGS を後処理し、この問題を回避しようとしています。ターゲット プラットフォームに応じた LDFLAGS。ここに問題の核心があります。Autoconf M4 で、32 ビットまたは 64 ビットのターゲット用にビルドしているかどうかを検出する良い方法はありますか? 正確な ABI は問題ではありません。主に、/usr/lib と /usr/lib64 のどちらにリンクする必要があるかを知ることです。

一文の質問に小説を書いて申し訳ありませんが、人々がこれを行う方法を尋ねるオンラインの場所をいくつか見つけましたが、誰もが忙しすぎて、それを行うべきではないという理由で答えを得られませんでした。ビルドプロセスをより脆弱にするので、少し準備をしようとしていました. 私はこれが恐ろしいハックであることを知っています (そして、別のアプローチを歓迎します!) が、移行中にシステムの構築を維持するために、これを回避する方法が必要です。

0 投票する
1 に答える
4642 参照

c++ - Qt pro ファイルの LDFLAGS

Ubuntu および Windows 用の GCC および MinGW でコンパイルしている Qt プロジェクトがあります。

次の LDFLAGS を追加して強化する必要があります。

  • スタック実行保護:LDFLAGS="-z noexecstack"
  • データの再配置と保護 (RELRO):LDLFAGS="-z relro -z now"

問題は、これを .pro ファイルで実行できるか、またその方法は? プロジェクト ファイルに LFLAGS と CFLAGS を簡単に追加できることがわかりましたが、LDFLAGS については何も見つかりませんでした。出力 Makefile でさえ、LDFLAGS が定義されていないようです。

長い間グーグルで調べた後に見つけた 1 つの方法QMAKE_CFLAGS_RELEASE += "--noexecstack"は、.pro ファイルを追加することでしたが、これが正しい方法であるとは確信していません。

上記の行の後、生成された Makefile は次のようになります。

noexecstack がCLFAGSリストに表示されますが、それで問題ないかどうかはわかりません。CFLAGSと同じではありませんLDFLAGS--thisdoesntexist私が試したときにもうまくいったように見えたので、コマンドを検証していないようです。

前もって感謝します。

編集:

グウェンの回答に基づいて追加しようとしましQMAKE_LFLAGS += "-z noexecstack -z relro -z now"たが、ld.exe からエラーが発生しました。 error: unrecognized option '-z'

EDIT2:

ツールのバージョン:

0 投票する
0 に答える
95 参照

go - Go lang コンパイラが ldflags で (不明な) エラーを引き起こす

WD My Cloud Ex2 用に Syncthing をコンパイルしようとしています。これは arm アーキテクチャであり、64kb のページファイルで動作するため、コンパイル中にフラグ ("-R 65536") が必要です。

コンパイルすると、次のエラーが発生します

残念ながら、Google では、このエラー メッセージに関する結果はまったくありません。このメッセージについて何ができますか?

0 投票する
1 に答える
952 参照

android-studio - build.gradleのldFlags('-c')の意味は何ですか?

Android Studio の build.gradle の ldFlags('-c') の意味を理解してください。

参照例: https://github.com/googlesamples/android-ndk/blob/a498a7809cb7c9ec576b95e797edc4e64777ea00/MoreTeapots/nativeactivity/build.gradle