我在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使用的编译器是“System Default:gcc 4.2”。所有其他选项都是gcc或LLVM gcc(我不知道这是什么)。
我后来尝试使用终端编译文件。发生了奇怪的事情。如果我用g ++编译它,没有任何额外的标志,编译成功完成,程序可以正常运行;但如果我用gcc编译它,就会出现错误页面。
所以,总而言之,在使用g ++时,一切都很好;使用gcc时,一切都不行。由于Xcode使用gcc,因此无法使用Xcode编译程序。 (我需要使用Xcode,因为这只是一个测试程序,我实际上有一个更大的项目要处理,我依赖于Xcode的调试器。)
所以我的问题是,什么是gcc和g ++之间的区别?或者我如何将Xcode的编译器更改为g ++?
答案 0 :(得分:1)
gcc是一个C编译器。
g ++是一个C ++编译器。
你正在尝试编译C ++,你需要使用c ++编译器。
谷歌搜索“使用XCode for c ++”会带来很多结果,但这个结果看起来相当简单并且有图片:https://www.cs.drexel.edu/~mcs171/Wi07/extras/xCode_Instructions/index.html
答案 1 :(得分:0)
gcc命令编译C文件(尽管你可以使用-libstdc ++)来链接C ++文件,但我不推荐它。 g ++命令适用于C ++文件,这就是为什么它适用于您的情况。
对于XCode,您必须将编译器从GCC更改为G ++才能成功运行。