楼主:
kafy 2018-03-16 02:00:56各位大大请教一下,我是C++ Thread函式库新手,
请问一下以下这么简单的程式为何会有linking error,
谢谢!
#include <thread>
void f(int i) {}
int main() {
std::thread t(f, 1);
t.join();
return 0;
}
作者:
LPH66 (-6.2598534e+18f)
2018-03-16 02:27:00错误讯息是什么?
作者:
F04E (Fujitsu)
2018-03-16 12:38:00请用C++11以后的编译器
作者: jaid (jaid) 2018-03-16 13:16:00
不给错误讯息是要通灵吗
作者:
F04E (Fujitsu)
2018-03-16 13:28:00靠腰 你f根本没有实体 当然会link error...
作者:
F04E (Fujitsu)
2018-03-16 13:59:00不好意思 眼花 看错水晶球告诉我,你g++编译选项没加 -lpthread
作者:
joe820730 (Let it go)
2018-03-16 14:16:00g++ main.cpp -o main.exe -lpthread -std=c++11
我试 g++ 7.3 也要加 -lpthread 没错
作者:
dzwei (Cout<< *p << \n ;)
2018-03-16 21:36:00我在Win10下用Clang 6.0 不用加-lpthread 可编译猜想可能是因为Clang on Win所使用的连结器跟VC++一样是Windows的
vc++ pthread好像算在default lib里面 会自动link这部分不知道有没有什么标准可依循就是...
作者:
LPH66 (-6.2598534e+18f)
2018-03-17 00:08:00应该说 Windows 的 thread library 不是独立出来的pthread 是 POSIX thread (API), Windows 不走这一套MSDN 对 (例如) CreateThread 的说明有写它是包含在kernel32.lib / kernel32.dll 里面, 也就是核心那一包里
作者:
schizophrena (ä½ å¾ˆè¨˜è€…ä½ å¾ˆè…¦æ®˜)
2018-03-17 09:56:00为什么不用boost?
作者: AstralBrain 2018-03-17 12:06:00
-lpthread (x) -pthread (o)
windows有支援posix thread, 也是default lib诶,仔细查了一下我错了... vs没支援posix thread是从std::thread才开始有vs支援
作者:
KevinR (Kevin)
2018-03-17 22:12:00楼上在胡扯什么东西...
作者: qwaszx771129 2018-04-13 17:08:00
compile flag可能要加参数