尝试编译包含Root(Cern)参数的C ++代码

时间:2016-07-04 09:20:36

标签: c++ gcc root-framework

我正努力尝试在Mac上编译用C ++和Root编写的代码。代码来自一位在Linux笔记本电脑上工作的同事。除了不同的操作系统之外,我有一个不同版本的gcc和Root而不是她,我不确定哪个区别导致代码无法在我的机器上编译。

她有g ++ 4.8和root 5.(某事)。我有gcc 5.3.0和root 6.06 / 02。

她向我提供了一系列代码,用于让她的机器编译代码

gcc -Wall -o executable_name code_name.cc `root-config --cflags --glibs`

但是当我在我的机器上写字时,终端给了我错误

gcc: error: unrecognized command line option ‘-stdlib=libc++’
gcc: error: unrecognized command line option ‘-stdlib=libc++’

我需要帮助生成正确的行以获取gcc来编译代码。

1 个答案:

答案 0 :(得分:1)

这里的问题有两个:您使用的是OSX并使用GCC。

问题在于root-config假设您已经在OSX上使用具有-stdlib标志的OSX标准Clang编译器。既然你没有使用Clang,而是GCC(没有这个标志)就会出错。

您有两种可能的解决方案:使用clang++代替g++进行编译和构建(如果编译器尚未安装,则需要安装编译器,它附带Xcode),或者修改root-config脚本,使其不添加-stdlib=libc++。可能存在root-config脚本检查以改变行为的环境变量或标志,但我对该脚本一无所知,您必须检查它。