我在谷歌搜索但我找不到解决方案,我想在x64位Debian系统上用32位gcc编译一个C程序。我使用以下命令编译:
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-libs。以同样的方式,我导出了路径:
export LD_LIBRARY_PATH="/lib32:/usr/lib32:$LD_LIBRARY_PATH"
它仍然没有编译。这段代码在x64中编译没有错误,我只想编译32位的相同代码。
答案 0 :(得分:0)
最后,我找到了解决方案,可以静态地在32位上直接编译它,现在它可以工作了。我想通过这种方式,我不需要担心x64和x86之间的库兼容性