[問題] 簡單的Thread程式卻無法編譯

看板C_and_CPP作者時間6年前 (2018/03/16 02:01), 編輯推噓6(6021)
留言27則, 14人參與, 6年前最新討論串1/1
各位大大請教一下,我是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

03/16 02:27, 6年前 , 1F
錯誤訊息是什麼?
03/16 02:27, 1F

03/16 02:28, 6年前 , 2F
我猜compile少參數
03/16 02:28, 2F

03/16 03:26, 6年前 , 3F

03/16 12:38, 6年前 , 4F
請用C++11以後的編譯器
03/16 12:38, 4F

03/16 13:16, 6年前 , 5F
不給錯誤訊息是要通靈嗎
03/16 13:16, 5F

03/16 13:28, 6年前 , 6F
靠腰 你f根本沒有實體 當然會link error...
03/16 13:28, 6F

03/16 13:41, 6年前 , 7F
f沒實體?
03/16 13:41, 7F

03/16 13:59, 6年前 , 8F
不好意思 眼花 看錯
03/16 13:59, 8F

03/16 14:01, 6年前 , 9F
水晶球告訴我,你g++編譯選項沒加 -lpthread
03/16 14:01, 9F

03/16 14:16, 6年前 , 10F
g++ main.cpp -o main.exe -lpthread -std=c++11
03/16 14:16, 10F

03/16 14:39, 6年前 , 11F
我試 g++ 7.3 也要加 -lpthread 沒錯
03/16 14:39, 11F

03/16 21:36, 6年前 , 12F
我在Win10下用Clang 6.0 不用加-lpthread 可編譯
03/16 21:36, 12F

03/16 21:38, 6年前 , 13F
猜想可能是因為Clang on Win所使用的連結器跟
03/16 21:38, 13F

03/16 21:38, 6年前 , 14F
VC++一樣是Windows的
03/16 21:38, 14F

03/16 22:20, 6年前 , 15F
vc++ pthread好像算在default lib裡面 會自動link
03/16 22:20, 15F

03/16 22:21, 6年前 , 16F
這部分不知道有沒有什麼標準可依循就是...
03/16 22:21, 16F

03/17 00:08, 6年前 , 17F
應該說 Windows 的 thread library 不是獨立出來的
03/17 00:08, 17F

03/17 00:08, 6年前 , 18F
pthread 是 POSIX thread (API), Windows 不走這一套
03/17 00:08, 18F

03/17 00:10, 6年前 , 19F
MSDN 對 (例如) CreateThread 的說明有寫它是包含在
03/17 00:10, 19F

03/17 00:10, 6年前 , 20F
kernel32.lib / kernel32.dll 裡面, 也就是核心那一包裡
03/17 00:10, 20F

03/17 09:56, 6年前 , 21F
為什麼不用boost?
03/17 09:56, 21F

03/17 12:06, 6年前 , 22F
-lpthread (x) -pthread (o)
03/17 12:06, 22F

03/17 20:44, 6年前 , 23F
windows有支援posix thread, 也是default lib
03/17 20:44, 23F

03/17 20:46, 6年前 , 24F
誒,仔細查了一下我錯了... vs沒支援posix thread
03/17 20:46, 24F

03/17 20:46, 6年前 , 25F
是從std::thread才開始有vs支援
03/17 20:46, 25F

03/17 22:12, 6年前 , 26F
樓上在胡扯什麼東西...
03/17 22:12, 26F

04/13 17:08, 6年前 , 27F
compile flag可能要加參數
04/13 17:08, 27F
文章代碼(AID): #1QghJTvg (C_and_CPP)