我在Mac OS莫哈韦上安装了Brew的GCC,但是GCC和G都不工作。
我试着用g编译下面的简单代码,但是我收到了错误消息。
这个程序可以通过默认的clang正确编译,所以我想知道有没有库链接错误。但我不确定。
我得到了同样的错误在gcc的情况下。
#include <iostream>
using namespace std;
int main(){
int i;
cin >> i;
cout << i * 2 + 1 << endl;
}
ld:警告:忽略文件/库/开发人员/命令行工具/SDK/MacOSX.sdk/usr/lib/libSystem.tbd,文件是为不支持的文件格式(0x 2D 0x 2D 0x 20 0x 21 0x 74 0x 61 0x 70 0x 69 0x 2D 0x 74 0x 62 0x 64 0x 2D 0x 76 0x 33)构建的,该格式不是正在链接的体系结构(x86_64):/资源库/开发人员/命令行工具/软件开发工具包/MacOSX.sdk/usr/lib/libSystem.tbd x86_64体系结构的未定义符号:“___cxa_atexit”,引用自:在ccEBCemd中的静态初始化和析构0(整数,整数):未找到体系结构x86_64 collect 2的符号:错误:ld返回1退出状态
g++ -v表示
使用内建规格。COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/9.2.0_1/libexec/gcc/x86_64-apple-darwin 18/9.2.0/lto-wrapper目的:x86_64-apple-darwin 18配置有:C++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++在这里,我们可以用一个简单的例子来说明这个问题,即:线程模型:posix gcc版本9.2.0(自制GCC 9.2.0_1)'
- 谢谢-谢谢
2条答案
按热度按时间gg58donl1#
最后,更新Xcode解决了错误。谢谢您的帮助。
正如您所评论的,我尝试
g++ --sysroot=/ -o test test.cpp
,然后我得到了一个新的错误,如致命错误:wchar.h:没有这样的文件或目录#include ^~~~~~~~~
我也试着编译只有
int main(){}
而没有任何库的代码。然后成功了。从这里我了解到标准库中有一个相关的问题。这个问题有时会发生在Can't compile C program on a Mac after upgrade to Mojave上。
无论如何,这类问题的解决方案似乎是更新或重新安装Xcode或GCC。
谢谢你!
kx1ctssn2#
我注意到您的错误日志:
file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64)
我想您应该使用以下命令重新安装gcc & g++:
arch -x86_64 brew install gcc
,这将在x86_64体系结构中安装它们。