Я был googling, но я не нашел решение, я хочу скомпилировать C-программу с gcc в 32 бита на 64-битной системе Debian. Я использую следующую команду для компиляции:Почему мой код компилируется в x64, а не в x32?
gcc -m32 -o programExecutable -L/usr/lib/i386-linux-gnu/ -I/home/secnok/polarssl-
1.3.5/include/ -I/usr/local/include/libusb-1.0 main.c /home/secnok/polarssl-
1.3.5/library/libpolarssl.a /usr/local/lib/libusb-1.0.a -lpthread -ludev
и я получаю этот выход:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux gnu/4.7
/../../../libudev.so when searching for -ludev /usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libudev.a when searching for -ludev
/usr/bin/ld: skipping incompatible /usr/lib/libudev.so when searching for -ludev
/usr/bin/ld: skipping incompatible /usr/lib/libudev.a when searching for -ludev
/usr/bin/ld: cannot find -ludev
я установил библиотеку GCC++ cmultilib и ia32-ЛИЭС. Таким же образом, я экспортировал путь:
export LD_LIBRARY_PATH="/lib32:/usr/lib32:$LD_LIBRARY_PATH"
и он до сих пор не компилируется. Этот код компилируется в x64 без ошибок, я просто хочу скомпилировать тот же код для 32 бит.
http://stackoverflow.com/questions/4250624/ld-library-path-vs-library-path –
Возможно, потому что ' libudev' недоступен для 32-битного. – ckruse
Обратите внимание, что x32 - это режим, разрешенный компилятором '-mx32' (32-разрядный и указатели в 64-битном режиме). Режим, разрешенный '-m32', - i686. Название путается. –