我在 Xcode 中使用 boost 库编写了一个 C++ 程序。这是我的代码。非常简单。
#include <iostream>
#include </usr/local/include/boost/math/special_functions/beta.hpp>
using namespace std;
using namespace boost::math;
int main (int argc, char * const argv[])
{
double a = 100.0;
double b = 100000.0;
double x = 0.3;
double result = beta(a, b, x);
cout << result << endl;
return 0;
}
但是当我尝试在 Xcode 中构建它时,弹出了很多与库链接相关的错误。我注意到 Xcode 使用的编译器是“系统默认值:gcc 4.2”。所有其他选项都是 gcc 或 LLVM gcc (我不知道这是什么)。
我后来尝试简单地使用终端来编译该文件。奇怪的事情发生了。如果我用g++编译它,没有任何额外的标志,编译成功完成,程序可以正常运行;但如果我用 gcc 编译它,就会出现错误页面。
所以,综上所述,使用g++时,一切正常;使用 gcc 时,一切都不正常。由于Xcode使用的是gcc,因此无法使用Xcode编译该程序。 (我有点需要使用 Xcode,因为这只是一个测试程序,我实际上有一个更大的项目要处理,并且我依赖于 Xcode 的调试器。)
所以我的问题是,gcc 和 g++ 之间到底有什么区别?或者如何将Xcode的编译器更改为g++?
gcc 是一个 C 编译器。
g++ 是一个 C++ 编译器。
您正在尝试编译 C++,因此,您需要使用 C++ 编译器。
谷歌搜索“Using XCode for c++”会带来很多结果,但这一个似乎相当简单并且有图片:
https://www.cs.drexel.edu/~mcs171/Wi07/extras/xCode_Instructions/index.html
gcc 命令编译 C 文件(尽管您可以使用 -libstdc++)来链接 C++ 文件,但我不推荐它。 g++ 命令适用于 C++ 文件,这就是它在您的情况下工作的原因。
对于 XCode,您必须将编译器从 GCC 更改为 G++ 才能成功工作。