C++ C++&引用'__gthread_active_p';未在此范围内声明;
我正在windows上使用std::atomic和std::thread支持编译GCC。 我在这里使用mingw: 我正在使用以下命令进行构建:C++ C++&引用'__gthread_active_p';未在此范围内声明;,c++,cmake,mingw,libatomic,C++,Cmake,Mingw,Libatomic,我正在windows上使用std::atomic和std::thread支持编译GCC。 我在这里使用mingw: 我正在使用以下命令进行构建: g++.exe @CMakeFiles/StrFormatsJSONTest.dir/includes_CXX.rsp -latomic -lglu32 -lopengl32 -D_WIN32_WINNT=0x600 -DWINVER=0x600 -D_WIN32_LEAN_AND_MEAN=1 -g -std=gnu++2a -o main.cpp.
g++.exe @CMakeFiles/StrFormatsJSONTest.dir/includes_CXX.rsp -latomic -lglu32 -lopengl32 -D_WIN32_WINNT=0x600 -DWINVER=0x600 -D_WIN32_LEAN_AND_MEAN=1 -g -std=gnu++2a -o main.cpp.obj -c main.cpp
但是,在使用#时,包括
很明显,这就是错误所在:
当我在#include
之前添加一个定义(弱链接)时,它会起作用。。。但我也会遇到其他错误,例如:
error: '__gthread_once_t' does not name a type; did you mean '__gthread_active_p'?
出于某些原因,GCC不包括以下任何一项:
gthr默认值.h
gthr posix.h
gthr单体.h
发现问题时,我有一个名为“Signal.h”的文件,它被包含在其中,而不是GCC的
find_package( Threads )
target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_THREAD_LIBS_INIT} )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -latomic -lglu32 -lopengl32 -D_WIN32_WINNT=0x600 -DWINVER=0x600 -D_WIN32_LEAN_AND_MEAN=1 -D__GTHREADS=1")
error: '__gthread_once_t' does not name a type; did you mean '__gthread_active_p'?