使用boost库运行c++程序时gcc和g++的区别?

问题描述 投票:0回答:2

我在 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++?

xcode gcc boost g++
2个回答
1
投票

gcc 是一个 C 编译器。

g++ 是一个 C++ 编译器。

您正在尝试编译 C++,因此,您需要使用 C++ 编译器。

谷歌搜索“Using XCode for c++”会带来很多结果,但这一个似乎相当简单并且有图片:

https://www.cs.drexel.edu/~mcs171/Wi07/extras/xCode_Instructions/index.html


0
投票

gcc 命令编译 C 文件(尽管您可以使用 -libstdc++)来链接 C++ 文件,但我不推荐它。 g++ 命令适用于 C++ 文件,这就是它在您的情况下工作的原因。

对于 XCode,您必须将编译器从 GCC 更改为 G++ 才能成功工作。

© www.soinside.com 2019 - 2024. All rights reserved.