Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用自定义标志编译XCode 5项目_C++_Xcode - Fatal编程技术网

C++ 使用自定义标志编译XCode 5项目

C++ 使用自定义标志编译XCode 5项目,c++,xcode,C++,Xcode,我有一个cpp文件,我可以使用以下命令行编译该文件: clang++ main.cpp -O2 -larmadillo 或者通过使用g++编译器通过 g++ main.cpp -O2 -larmadillo 我的问题是如何在Xcode 5.1.1中编译main.cpp 以下是我尝试过的: 1)项目->构建设置>其他C++标志> >添加“-O2-LARMADILO” < P> 2)目标->构建设置->其他C++标志> >添加“-O2-LARMADILO” 两者都没有帮助 我不熟悉这种链接

我有一个cpp文件,我可以使用以下命令行编译该文件:

 clang++ main.cpp -O2 -larmadillo
或者通过使用g++编译器通过

 g++ main.cpp -O2 -larmadillo
我的问题是如何在Xcode 5.1.1中编译main.cpp

以下是我尝试过的:

1)项目->构建设置>其他C++标志> >添加“-O2-LARMADILO” < P> 2)目标->构建设置->其他C++标志> >添加“-O2-LARMADILO” 两者都没有帮助


我不熟悉这种链接/编译的魔力,所以我不知道从这里走到哪里。

clangg++
g++
既可以充当编译器,也可以充当编译器驱动程序。当您从命令行将它们作为编译器驱动程序运行时,它们在内部处理获取可执行文件的所有步骤,包括编译、组装和链接

但是,当Xcode进行构建时,它希望将clang作为编译器运行,并单独处理链接。因此,在“其他C++标志”中传递链接标志基本上是这样做:

// compile step (no linking)
clang++ main.cpp -O2 -larmadillo -c

// linking step (error, missing library)
clang++ main.o
因此,您需要做的是更改构建设置,以便Xcode在进入链接步骤时知道它需要在该库中进行链接。一种快速而肮脏的方法是将链接器标志添加到“其他链接器标志”(并适当设置库搜索路径),但最好编辑目标的“构建阶段”并更新“带有库的链接二进制文件”“使用适当的库。您可能还需要将目标的构建设置中的SDK更改为“当前Mac OS”,以便Xcode将使用您安装的任何库,而不是严格限制为默认OS X安装中可用的库