我是C的新手,在OS X中编译代码时遇到了一些问题.
我在Eclipse中编写了很多Java代码,并使用终端编译我的代码.但是现在我正在学习openMP并且遇到麻烦.
首先我下载了Xcode来编写openMP代码,但它无法识别<omp.h>.然后我安装了g++.当我输入g++ -v终端时,我得到了这个:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)
但是当我使用时,g++ Mesh.cpp -fopenmp我仍然会得到
Mesh.cpp:4:10: fatal error: 'omp.h' file not found
#include <omp.h>
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
然后我尝试将PTP安装到Eclipse中并遇到同样的问题.我以为omp.h我的MacBook 中没有,所以我搜索了它,发现下面有几个omp.h文件夹gcc-4.9.1/build/.
这就是问题所在.根据Java经验,我拥有该文件但无法使用它的唯一原因是类路径错误.但是,我不知道如何在g ++,Xcode或Eclipse中更改此配置.但是因为我可以包含<stdio.h>所有IDE的文件并使用所有IDE编译它,我怎么能不这样做<omp.h>呢?
我注意到的另一件事是gcc文件夹版本是4.9.1,但当我输入gcc -v终端时,我输入相同的内容g++ -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建 LLVM 编译器,以便我可以在 Apple M1 上启用 OpenMP。我正在使用 LLVM 开发树,(因为我最近看到一些 OpenMP 运行时对此进行了处理)。
我已经结束了这个脚本来调用 cmake:
# Xcode, Ninja
BUILD_SYSTEM=Ninja
BUILD_TAG=Ninja
cmake ../llvm \
-G$BUILD_SYSTEM -B ${BUILD_TAG}_build \
-DCMAKE_OSX_ARCHITECTURES='arm64' \
-DCMAKE_C_COMPILER=`which clang` \
-DCMAKE_CXX_COMPILER=`which clang++` \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=1 \
-DCMAKE_INSTALL_PREFIX=$HOME/software/clang-12.0.0/arm64 \
-DLLVM_ENABLE_WERROR=FALSE \
-DLLVM_TARGETS_TO_BUILD='AArch64' \
-DLLVM_ENABLE_PROJECTS='clang;openmp,polly' \
-DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin20.1.0'
Run Code Online (Sandbox Code Playgroud)
这里使用的编译器是
$ /usr/bin/clang --version
Apple clang version 12.0.0 (clang-1200.0.32.27)
Target: arm64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)
然后 ninja 可以成功构建 clang、clang++ 和 OpenMp 运行时并安装它们。(很简单,针对 Arms64 的 Arm64 图像)
$ file ~/software/clang-12.0.0/arm64/bin/clang
/Users/jcownie/software/clang-12.0.0/arm64/bin/clang: Mach-O 64-bit executable …Run Code Online (Sandbox Code Playgroud)