看板 C_and_CPP 關於我們 聯絡資訊
各位大大請教一下,我是C++ Thread函式庫新手, 請問一下以下這麼簡單的程式為何會有linking error, 謝謝! #include <thread> void f(int i) {} int main() { std::thread t(f, 1); t.join(); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.61.66 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1521136861.A.E6A.html
LPH66: 錯誤訊息是什麼? 03/16 02:27
a1u1usul3: 我猜compile少參數 03/16 02:28
Hazukashiine: https://stackoverflow.com/a/8649908 ??? 03/16 03:26
F04E: 請用C++11以後的編譯器 03/16 12:38
jaid: 不給錯誤訊息是要通靈嗎 03/16 13:16
F04E: 靠腰 你f根本沒有實體 當然會link error... 03/16 13:28
a27417332: f沒實體? 03/16 13:41
F04E: 不好意思 眼花 看錯 03/16 13:59
F04E: 水晶球告訴我,你g++編譯選項沒加 -lpthread 03/16 14:01
joe820730: g++ main.cpp -o main.exe -lpthread -std=c++11 03/16 14:16
johnjohnlin: 我試 g++ 7.3 也要加 -lpthread 沒錯 03/16 14:39
dzwei: 我在Win10下用Clang 6.0 不用加-lpthread 可編譯 03/16 21:36
dzwei: 猜想可能是因為Clang on Win所使用的連結器跟 03/16 21:38
dzwei: VC++一樣是Windows的 03/16 21:38
Killercat: vc++ pthread好像算在default lib裡面 會自動link 03/16 22:20
Killercat: 這部分不知道有沒有什麼標準可依循就是... 03/16 22:21
LPH66: 應該說 Windows 的 thread library 不是獨立出來的 03/17 00:08
LPH66: pthread 是 POSIX thread (API), Windows 不走這一套 03/17 00:08
LPH66: MSDN 對 (例如) CreateThread 的說明有寫它是包含在 03/17 00:10
LPH66: kernel32.lib / kernel32.dll 裡面, 也就是核心那一包裡 03/17 00:10
schizophrena: 為什麼不用boost? 03/17 09:56
AstralBrain: -lpthread (x) -pthread (o) 03/17 12:06
Killercat: windows有支援posix thread, 也是default lib 03/17 20:44
Killercat: 誒,仔細查了一下我錯了... vs沒支援posix thread 03/17 20:46
Killercat: 是從std::thread才開始有vs支援 03/17 20:46
KevinR: 樓上在胡扯什麼東西... 03/17 22:12
qwaszx771129: compile flag可能要加參數 04/13 17:08