[解決済み] MinGWとMSYSがコマンドラインから与えられたパス名を混乱させないようにする方法
質問
Windows で、CodeSourcery のクロスコンパイラ スイートを使って、ARM/Linux 用のプログラムをクロスコンパイルしています。私は MinGW MSYS をコマンド インタープリターとして使用していますが、非常に頻繁にパスとパス名を混同してしまいます。例えば、私のプログラムをビルドするために、次のコマンドを実行します。
arm-none-linux-gnueabi-gcc.exe -Wall -g \
-Wl,--dynamic-linker=/usr/lib/myrpath/ld-linux.so.3 \
-Wl,-rpath=/usr/lib/myrpath \
-I../targetsysroot/usr/include \
myprogram.c -o myprogram
もちろん、私は
/usr/lib/myrpath
の中にそのまま挿入して
myprogram
私がコンパイルしているARM Linuxのターゲットでは、MinGWもMSYSも使いません。しかし、最終的に入るものは以下のとおりです。
...
0x0000000f (RPATH) Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
私が望んでいたものとはちょっと違います。cmd.exeコマンドラインから直接GCCを起動すると、実行ファイルに正しいrpathが表示されます。MSYSコマンドラインでGCCを呼び出すと、混乱したrpathが表示されます。cmd.exeコマンドラインからmakeで実行されるMakefileでGCCを呼び出すと、まだマングルドrpath(!)が表示されます。
この迷惑な動作をオフにすることができる何かアイデアがありますか?
どのように解決するのですか?
MSYS/MinGW がパスを翻訳するのを回避するための巧妙なトリックを発見したところです。
パスの最初にダブルスラッシュを使用すると、MSYS はパスを DOS 形式に変換しません。したがって、OP の例では、-rpath スイッチはこのように指定する必要があります。
-Wl,-rpath=//usr/lib/myrpath
すべての Unix/Linux ツールは、このような偽のスラッシュを問題なく処理するようです。したがって、バイナリの rpath が //usr/... で始まるとしても、ローダーは正しい処理を行うと思います。ローダーは正しいことをすると思います。
関連
-
[解決済み] gcc/g++とcc1/cc1plusの違いは何ですか?
-
[解決済み] .ascizと.stringアセンブラディレクティブの違いは何ですか?
-
[解決済み] シグナル11[SIGSEGV]のデフォルトアクションでプロセスが終了しています。
-
configure: エラー: $PATH に受け入れ可能な C コンパイラがありません。
-
[解決済み] cygwinにgccをインストールするにはどうしたらいいですか?
-
[解決済み] CygwinとMinGWの違いは何ですか?
-
[解決済み] どのフラグが -march=native で有効になるかを確認する方法は?
-
[解決済み] 一部のライブラリのみを静的にリンクする
-
[解決済み] fpic` と `-fPIC` の gcc パラメータの違いは何ですか?
-
[解決済み] 変更されたヘッダーファイルを含むソースファイルをMakefileが自動的にリビルドするにはどうしたらいいですか?(C/C++の場合)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ファイル形式が認識されない。GCCを使用してリンカスクリプトとして扱う
-
[解決済み] gcc エラー:間違った ELF クラスです。ELFCLASS64
-
configure: エラー: $PATH に受け入れ可能な C コンパイラがありません。
-
[解決済み] なぜGCCはa*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのでしょうか?
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み】gcc makefileのエラー。"No rule to make target ..." (ターゲットにするルールがありません)
-
[解決済み] ライブラリを静的にリンクするようにgccに直接指示する
-
[解決済み] GCCをGMP、MPFR、MPC、ELFでバラバラにインストールする方法、共有ライブラリは不要ですか?
-
[解決済み] rpathと-Lの違いは何ですか?
-
[解決済み] 変更されたヘッダーファイルを含むソースファイルをMakefileが自動的にリビルドするにはどうしたらいいですか?(C/C++の場合)