在 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!
有没有任何想法如何关闭这个烦人的行为?