我正在使用 Ubuntu 11.04。我已经在终端中使用命令 sudo apt-get install gcc 4.5 安装了编译器 gcc 4.5。现在我需要命令来启用 OpenMP。是 gcc -fopenmp foo.c 吗?
@pl1nk 我从头开始:
第一步=>sudo apt-get 安装 build-essential
第二步=>sudo apt-get 安装 gcc 4.5
现在 gcc -v 的输出是:
**ubuntu@ubuntu:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)**
In few words the same results....
What should I do now?
答案1
运行时update-alternatives --config gcc
会要求您在已安装的 GCC 版本中选择想要使用的版本。
然后您可以使用所选版本运行 gcc。
答案2
GCC 4.4/5 实现 OpenMP 版本 3.0。
GCC 4.7/8 支持 OpenMP 3.1 规范。
GCC 4.9 支持 OpenMP 4.0。但是,Ubuntu 13.10 默认使用 GCC 4.8。
有关详细信息,请参阅For more information, seeGCC wiki 中的 OpenMP。
根据 gcc 手册页,gcc -fopenmp foo.c
确实是正确的语法。
手册页还指出:
-fopenmp
启用对 C/C++ 中的 OpenMP 指令“#pragma omp”和 Fortran 中的“!$omp”的处理。指定 -fopenmp 时,编译器根据 OpenMP 应用程序接口 v3.0 生成并行代码http://www.openmp.org/。该选项隐含 -pthread,因此只在支持 -pthread 的目标上受支持。