【发布时间】:2017-01-26 22:58:25
【问题描述】:
如何让 CMake 在 Windows 上静态链接 pthread?我使用MSYS2 MinGW 32 bit 和cmake v3.7。
我想要实现的是像
这样的编译器调用g++ -static-libgcc -static-libstdc++ -std=c++11 -o test test.cpp -Wl,-Bstatic -lpthread
设置
target_link_libraries(test PUBLIC "-Wl,-Bstatic -lpthread")
导致-Wl,-Bdynamic -Wl,-Bstatic -lpthread 被调用。如果我更改CMAKE_EXE_LINKER_FLAGS,pthreads 会包含在我的目标文件之前,因此不会解析符号。
【问题讨论】:
-
一个澄清:1)当你说你想在Windows上静态链接pthread时,你的意思是产生一个静态库(测试将是一个静态库?)或者你想链接到pthread静态库?
-
@fedepad 我想生成一个链接到静态 pthread 的可执行文件(因为对 g++ 的更新调用会生成)