2

我正在尝试在 Objective-C++ 程序中使用 OpenMP。
不幸的是,llvm-gcc 4.2 在使用 OpenMP 时似乎有严重的错误。根据我的研究,最好的解决方案应该是使用 gcc 4.8。

我已经下载了 gcc 4.8 的预构建版本。我的问题是:如何将新编译器与 Xcode 集成,以便我可以直接在 Xcode 的 Build Settings 中选择它?
或者,有没有一种简单的方法可以用 gcc4.8 编译我的项目?我有不同的文件和一个 .xib,我真的不想手动编译它们。

我正在使用 MacOS 10.8.3 和 Xcode 4.5.1(尽管我认为所有 Xcode 4.x 的过程都应该相同)。

4

2 回答 2

1

将 GCC 4.8 安装到 Xcode 4.5、Xcode 4.6、Xcode 5.0 中:

对于尚未安装 GCC 4.8 的人:

安装新版本的自制软件

你可以在网上找到如何安装的方法

将您的 brew 更新到最新版本 ( $brew update)

1.$brew install gcc48 --enable-all-languages

(可能应该通过 brew 安装 mpc、mpfr 和 gmp,http ://solarianprogrammer.com/2013/06/11/compiling-gcc-mac-os-x/ )

2.$brew link gcc48

3.备份g++,gpp,c++,cpp,c++ in/usr/bin/

4.【可选步骤】:

别名 g++-4.8,gpp-4.8,c++-4.8,cpp-4.8,c++-4.8

/usr/local/Cellar/gcc48/4.8.2/bin/g++

/usr/bin/

【以上4步,未安装gcc的开发者】

5.制作插件

1) 为Xcode下载一个GCC 4.5插件

2)将每个“4.5”更改为“4.8”,将“4_5”更改为“4_8”,文件名,文件内容,

除了文件中的“com.apple.compilers.gcc.headers.4_2” GCC 4.5.xcspec

您可以保持内容English.lproj不变,并删除Japanese.lproj.

3)在文件中GCC 4.8.xcspec

(希望您已经将文件名更改GCC 4.5.xcspecGCC 4.8.xcspec

改变ExecPath = "...”;

ExecPath = "/usr/local/bin/gcc-4.8"

ExecPath = "/usr/local/Cellar/gcc48/4.8.2/bin/gcc-4.8"(对于通过 brew 安装 gcc-4.8 的人)

ExecPath = "/usr/bin/gcc"(对于完成第 4 步的人。)

4)删除文件中的“-Wshorten-64-to-32”部分GCC 4.8.xcspec

{
    Name = "GCC_WARN_64_TO_32_BIT_CONVERSION";
    Type = Boolean;
    DefaultValue = NO;
    CommandLineArgs = {
        YES = (
            "-Wshorten-64-to-32",
        );
        NO = ();
    };
    AppearsAfter = "GCC_WARN_PROTOTYPE_CONVERSION";
    Category = Warnings;
    CommonOption = NO;
    DisplayName = "Implicit Conversion to 32 Bit Type";
    Description = "Warn if a value is implicitly converted from a 64 bit type to a 32 bit type.
    [GCC_WARN_64_TO_32_BIT_CONVERSION, -Wshorten-64-to-32]";
}

6.把编辑GCC 4.8.xcplugin

/Applications/Xcode.app/Contents/Plugins/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/

7.重新打开Xcode。

现在,新插件已经为您准备好了。您可以在项目的“Build Settings”的“Compiler for C/C++/Objective-C”中看到新的 GCC 编译器插件

8.更改Xcode项目中的构建设置

1)在Xcode的projectand设置中target

将“C/C++/Objective-C 编译器”更改为“GCC 4.8”

2)在project设置中

删除“CLANG_CXX_LIBRARY”行

于 2013-10-18T05:54:07.533 回答
1

在 Xcode 中,在您的项目中,选择项目(文件的根目录,带有蓝色图标)。在打开的视图中,再次选择项目,然后选择选项卡“构建设置”。

在此处搜索条目“C/C++/Objective-C 的编译器(表格视图上方有一个搜索框)。编辑值并设置自定义路径(通过选择“其他...”)到您下载的 gcc。

于 2013-04-27T10:54:02.540 回答