Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我已经将openmp包含在我的项目中。我在编译器标志中有-fopenmp。
g++ -std = c++ 0x -O3 -Wall -c -fmessage-length = 0 -march = core2 -fopenmp -ffast-math -fPIC
而且我在编译时有此输出。
我试图将-fopenmp标志添加到链接器中,并将其输出
GCC版本为4.8.2。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我已经将openmp包含在我的项目中。我在编译器标志中有-fopenmp。
g++ -std = c++ 0x -O3 -Wall -c -fmessage-length = 0 -march = core2 -fopenmp -ffast-math -fPIC
#pragma omp parallel for
for (int i = 0; i < rows; i++) {
MatrixXd frame = frames.row(i);
output.row(i) = dem(frame);
}
return output;
而且我在编译时有此输出。
hello.cpp:(.text+0x2d88): undefined reference to `omp_get_num_threads'
hello.cpp:(.text+0x2d8f): undefined reference to `omp_get_thread_num'
./hello.o: In function `demodulateMatrix':
hello.cpp:(.text+0x315f): undefined reference to `GOMP_parallel_start'
hello.cpp:(.text+0x316c): undefined reference to `GOMP_parallel_end'
我试图将-fopenmp标志添加到链接器中,并将其输出
g++: error: unrecognized command line option ‘-fopenmp,’
make: *** [libhello.so] Error 1
GCC版本为4.8.2。
最佳答案
您还需要将-fopenmp
传递给链接器。看起来您尝试这样做,但是遇到语法错误,该错误导致链接器看到-fopenmp,
(末尾有逗号)。检查您的makefile。
(同样,您似乎将hello.cpp
而不是hello.o
传递给链接器,因此您的代码被编译了两次。)
关于c++ - 无法在C++项目中使用openmp ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23779001/
10-11 16:49