В Windows я перекрестно компилирую программу для ARM/linux с помощью набора кросс-компиляторов CodeSourcery. Я использую 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
вставил verbatim в исполняемый файл myprogram
- цель ARM linux, которую я компилирую, не использует mingw или msys. Но вот что входит в это:
...
0x0000000f (RPATH) Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
Не то, что я хотел. Если я вызываю gcc в командной строке cmd.exe напрямую, я получаю правильный rpath в исполняемом файле. Если я вызову gcc в командной строке msys, я получаю искаженный rpath. Если я вызываю gcc с Makefile, который запускается с make из командной строки cmd.exe, я все равно получаю искаженный rpath (!)
Любые идеи, как я могу отключить это раздражающее поведение?