我正努力尝试在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来编译代码。
答案 0 :(得分:1)
这里的问题有两个:您使用的是OSX并使用GCC。
问题在于root-config
假设您已经在OSX上使用具有-stdlib
标志的OSX标准Clang编译器。既然你没有使用Clang,而是GCC(没有这个标志)就会出错。
您有两种可能的解决方案:使用clang++
代替g++
进行编译和构建(如果编译器尚未安装,则需要安装编译器,它附带Xcode),或者修改root-config
脚本,使其不添加-stdlib=libc++
。可能存在root-config
脚本检查以改变行为的环境变量或标志,但我对该脚本一无所知,您必须检查它。