![使用真正的 GCC/G++ 在 OSX 中进行根编译](https://linux22.com/image/137850/%E4%BD%BF%E7%94%A8%E7%9C%9F%E6%AD%A3%E7%9A%84%20GCC%2FG%2B%2B%20%E5%9C%A8%20OSX%20%E4%B8%AD%E8%BF%9B%E8%A1%8C%E6%A0%B9%E7%BC%96%E8%AF%91.png)
我需要用 gcc/g++ 编译 ROOT。我在使用 Objective C 库时遇到困难。
如果我将真正的 g++ (使用安装brew
)链接到命令,并且与->gg++
相同- 我可以开始编译gcc
ggcc
$ cmake ../ -DCMAKE_CXX_COMPILER=gg++ -DCMAKE_C_COMPILER=ggcc <the rest of my options>
编译大约完成了 70%,然后出现“选项 '-O' 采用整数参数”的错误。我追踪到了这一点。在'root/core/macosx/CMakeLists.txt'中,有一行
set_source_files_properties(${sources} COMPILE_FLAGS "-ObjC++ -std=c++11")
g++
无法识别 Objective C 标志也是如此。我已将此行更改为
set_source_files_properties(${sources} COMPILE_FLAGS "-x objective-c++-header -lobjc -std=c++11")
这是g++
等价的。我也尝试过-x objective-c++
。此尝试失败率约为 70%,并出现数百个错误。基本上看起来编译器不理解 Objective C++。
有没有人在 OSX 上成功地从源代码编译 ROOT g++
(不是clang
)?
PS - 作为旁注,我相信OSX 上的g++
in/usr/bin
实际上是一个链接clang
- 在我的机器上通过键入 进行验证g++ --version
。这就是我g++
从进行安装brew
并将其链接到 的原因gg++
。
- 根版本:Github Master 分支,提交#2762a32
- 平台:操作系统X
- 编译器:海湾合作委员会8.1.0