如果链接到openmp,如何将预编译头与gcc一起使用
最简单的例子:如果链接到openmp,如何将预编译头与gcc一起使用,gcc,g++,openmp,precompiled-headers,Gcc,G++,Openmp,Precompiled Headers,最简单的例子: // file: main.cpp #include "pch.h" int main() { std::cout << "test" << std::endl; return 0; } 但是,一旦我将最后一行更改为: g++ main.cpp -fopenmp -Winvalid-pch 已禁用预编译标头的使用: warning: pch.h.gch: not used because `_REENTRANT' is defined
// file: main.cpp
#include "pch.h"
int main()
{
std::cout << "test" << std::endl;
return 0;
}
但是,一旦我将最后一行更改为:
g++ main.cpp -fopenmp -Winvalid-pch
已禁用预编译标头的使用:
warning: pch.h.gch: not used because `_REENTRANT' is defined [-Winvalid-pch]
链接到OpenMP时,如何仍使用预编译头?为什么可重入定义与使用预编译头冲突?您必须生成.pch并使用相同的标志编译源代码
-fopenmp
表示#pragma omp
和-pthread
g++ -fopenmp pch.h
g++ main.cpp -fopenmp -Winvalid-pch
或者至少
g++ -pthread pch.h
g++ main.cpp -fopenmp -Winvalid-pch
g++ -fopenmp pch.h
g++ main.cpp -fopenmp -Winvalid-pch
g++ -pthread pch.h
g++ main.cpp -fopenmp -Winvalid-pch