繁体   English   中英

使用g ++ -m32选项编译C ++

[英]Compiling C++ with g++ -m32 option

我正在尝试这样编译:

-bash-4.1$ g++ -static -m32 Hello.cpp

并得到这样的错误:

/opt/rh/devtoolset-4/root/usr/libexec/gcc/x86_64-redhat-linux/5.2.1/ld: skipping incompatible /opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1/libstdc++.a when searching for -lstdc++
/opt/rh/devtoolset-4/root/usr/libexec/gcc/x86_64-redhat-linux/5.2.1/ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status

我也尝试过这个, 但仍然得到上面完全相同的错误

g++ -static -m32 -L/opt/rh/devtoolset-4/root/usr/lib/gcc/x86_64-redhat-linux/5.2.1/32 Hello.cpp

我已经尝试过两个命令-没有任何帮助。

为什么仍然查看错误的目录?
使用-m32选项覆盖-L选项吗?
我在-m32选项上找不到太多文档。

请帮忙。

谢谢!

  • 为什么仍然查看错误的目录?
    编译器始终首先在预定义目录中查找。 -L选项会将您的路径添加到这些目录列表中,因此,由于该原因,编译器仍会查找错误的目录。 有关更详细的输出,请尝试使用详细的输出-###-v选项编译您的程序。
  • 使用-m32选项覆盖-L选项吗?
    答案是否定的-m32选项是生成32位代码的选项,例如:您可以生成在32位计算机和64位计算机上运行的32位代码。 您也可以在64位计算机上运行此代码-它将很好地工作。

  • 我在-m32选项上找不到太多文档。
    这是指向GCC文档的链接
    这是有关目录搜索选项的文档

也要告诉编译器在哪里可以找到库,您可以设置
LD_LIBRARY_PATH在ENV export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FULL_PATH_TO_YOUR_LIB
不要覆盖env vars-如果您不确定自己在做什么,可能会引起更多问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM