【问题标题】:Difference between gcc and g++ when running c++ program with boost library?使用boost库运行c ++程序时gcc和g ++之间的区别?
【发布时间】:2011-09-01 16:33:36
【问题描述】:

我在 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 compiler-construction g++


    【解决方案1】:

    gcc 是一个 C 编译器。

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

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

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

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

    【讨论】:

    • 这与我在其他参考资料上看到的不完全相同,它说 gcc 是一个编译器集合,其中包括 g++。不过不管怎样,你知道怎么把Xcode的编译器改成g++吗?
    • meandmark.com/xcodetips.html ctrl+f "更改 Xcode 用于构建项目的编译器"
    • GCC(首字母缩写词,全部大写)代表“GNU Compiler Collection”,实际上包括gccg++ 编译器。我猜这就是让你感到困惑的地方。有关使用 XCode 和 g++ 的信息,请参见上面的编辑
    • 致尼克:谢谢,但这没有帮助。我想是因为我的macbook(10.6.8)和Xcode的版本不同。
    • 致大脑:那你怎么解释当我用“gcc”和“g++”使用终端编译程序时,出现了不同的结果?
    【解决方案2】:

    gcc 命令也可以编译 C 文件(尽管您可以使用 -libstdc++)来链接 C++ 文件,但我不建议这样做。 g++ 命令适用于 C++ 文件,这就是它适用于您的情况的原因。

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

    【讨论】:

    • 谢谢,但我究竟如何才能将 Xcode 编译器从 GCC 更改为 G++?
    • 我不记得如何更改它,但如果你去创建新项目->工具->C++ 工具并复制你的代码,它应该可以工作。
    猜你喜欢
    • 2010-12-03
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2010-10-14
    • 2017-07-16
    相关资源
    最近更新 更多