Trên Windows, tôi đang biên dịch chéo chương trình cho ARM/Linux bằng bộ biên dịch chéo của CodeSourcery. Tôi sử dụng mysw msys làm thông dịch viên lệnh của tôi, và rất thường xuyên nó sẽ mangle đường dẫn và tên đường dẫn của tôi. Ví dụ, để xây dựng chương trình của tôi, tôi gọiLàm thế nào để dừng mingw và msys từ tên đường dẫn mangling được đưa ra tại dòng lệnh?
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
Tất nhiên, tôi muốn /usr/lib/myrpath
chèn đúng nguyên văn vào myprogram
thực thi - mục tiêu ARM linux Tôi đang biên soạn cho không sử dụng mingw hoặc msys. Nhưng đây là những gì kết thúc vào đó:
...
0x0000000f (RPATH) Library rpath: [C:/MinGW/msys/1.0/lib/myrpath]
...
Không chính xác những gì tôi muốn. Nếu tôi gọi gcc trên dòng lệnh cmd.exe một cách trực tiếp, tôi sẽ nhận được rpath đúng trong tệp thực thi. Nếu tôi gọi gcc trên dòng lệnh msys, tôi sẽ nhận được đường cắt xén. Nếu tôi gọi gcc với một Makefile được chạy với lệnh make từ dòng lệnh cmd.exe, tôi vẫn nhận được một đường dẫn bị xé (!)
Bất kỳ ý tưởng nào làm tôi có thể tắt hành vi phiền toái này?
Cảm ơn - đó là liên kết (heuristics) đã giúp tôi 'giả ra' mingw và có được con đường của tôi thông qua unmolested. –
WRONG! Có một cách để chuyển đổi nếu TẮT. http://stackoverflow.com/a/34386471/404615 –