作者:
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可能要加參數