在指定自定义GCC后,qt creator默认为g ++(4.2)

时间:2013-10-26 16:43:12

标签: macos gcc qt-creator

问题

我在QT Creator中实现g ++ 48编译器时遇到问题。我使用MacPorts构建了这个编译器。似乎QT Creator忽略了我的编译器并默认为xcode g ++ 42。如何正确设置编译器以覆盖它?

故障排除

您是否正确安装了gcc / g ++并且是选择的主要内容? 我通过执行以下操作确保正确安装了gcc并且路径正确:

    :~ which gcc:
    /opt/local/bin/g++
    :~ g++ --version:
    g++ (MacPorts gcc48 4.8.1_3) 4.8.1

您使用的系统是什么?  我的系统:Mac OSX 10.9 Mavericks。 QT Creator 2.8.1基于QT 5.1.0。


工具链设置:在QT Creator中,我通过运行Compilers_Add_GCC并输入编译器路径/opt/local/bin/g++来指定自定义GCC编译器。如果我将鼠标悬停在* .cpp中的任何#include行上,则它会正确显示路径/opt/local/include/gcc48/{headerName}。我怀疑这个问题与QT Mkspecs有关,但我真的不明白这是什么或者如何为我的自定义gcc安装编写一个自定义的(如果需要)。这可以解释一下吗?


在QT Creator中更新了套件?该套件已按照此处的说明进行了更新:Qt Creator use another GCC Version located in another Place


为什么你怀疑正在使用g ++ 42?这是基于我检查构建日志文件得到的结果。

12:30:19: Running steps for project untitled...
12:30:19: Configuration unchanged, skipping qmake step.
12:30:19: Starting: "/usr/bin/make" 
/Applications/Xcode.app/Contents/Developer/usr/bin/g++ -c -pipe -std=c++11 -g -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.6 -Wall -W -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -I/Users/raymondvaldes/Qt/5.1.0/clang_64/mkspecs/macx-g++ -I/Users/raymondvaldes/Documents/code/untitled -I. -o main.o /Users/raymondvaldes/Documents/code/untitled/main.cpp
/Users/raymondvaldes/Documents/code/untitled/main.cpp:4:10: fatal error: 'random' file not found
#include <random>
         ^
1 error generated.
make: *** [main.o] Error 1
12:30:20: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled (kit: gcc48)
When executing step 'Make'
12:30:20: Elapsed time: 00:01.

RAYMONDs-MacBook-Air:~ raymondvaldes$ /Applications/Xcode.app/Contents/Developer/usr/bin/g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

最后,这是我简单的工作示例:

#include <iostream>
#include <complex>
#include <cmath>
#include <random>

int main()
{
  std::cout << "Hello World!" << std::endl;
  return 0;
}

和我的专业档案。

cache()
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

QMAKE_CXXFLAGS += -std=c++11

SOURCES += main.cpp

谢谢。

1 个答案:

答案 0 :(得分:2)

我终于解决了这个问题,现在我可以在QT Creator中使用我的MacPorts GCC48编译器。我怀疑我需要在QT目录中创建一个gcc48 mkspecs文件夹,并将文件夹名称提供给QT Creator自定义编译器设置屏幕。我创建了“macs -g ++ 48”文件夹,该文件夹是从“~path~QT / 5.1.x / clang_64 / mkspecs”中的通用“macs-g ++”文件夹中复制的。我不得不修改qmake.conf。我注释掉了

#include(../common/g++-macx.conf)
#include(g++-base.conf)

并在进行以下修改时将其内容放在quake.conf中:

QMAKE_CC  = gcc-mp-4.8
QMAKE_CXX = g++-mp-4.8