作者kafy ()
看板C_and_CPP
标题[问题] 简单的Thread程式却无法编译
时间Fri Mar 16 02:00:56 2018
各位大大请教一下,我是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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1521136861.A.E6A.html
1F:→ LPH66: 错误讯息是什麽? 03/16 02:27
2F:→ a1u1usul3: 我猜compile少参数 03/16 02:28
4F:→ F04E: 请用C++11以後的编译器 03/16 12:38
5F:→ jaid: 不给错误讯息是要通灵吗 03/16 13:16
6F:→ F04E: 靠腰 你f根本没有实体 当然会link error... 03/16 13:28
7F:→ a27417332: f没实体? 03/16 13:41
8F:→ F04E: 不好意思 眼花 看错 03/16 13:59
9F:→ F04E: 水晶球告诉我,你g++编译选项没加 -lpthread 03/16 14:01
10F:→ joe820730: g++ main.cpp -o main.exe -lpthread -std=c++11 03/16 14:16
11F:→ johnjohnlin: 我试 g++ 7.3 也要加 -lpthread 没错 03/16 14:39
12F:推 dzwei: 我在Win10下用Clang 6.0 不用加-lpthread 可编译 03/16 21:36
13F:→ dzwei: 猜想可能是因为Clang on Win所使用的连结器跟 03/16 21:38
14F:→ dzwei: VC++一样是Windows的 03/16 21:38
15F:推 Killercat: vc++ pthread好像算在default lib里面 会自动link 03/16 22:20
16F:→ Killercat: 这部分不知道有没有什麽标准可依循就是... 03/16 22:21
17F:推 LPH66: 应该说 Windows 的 thread library 不是独立出来的 03/17 00:08
18F:→ LPH66: pthread 是 POSIX thread (API), Windows 不走这一套 03/17 00:08
19F:→ LPH66: MSDN 对 (例如) CreateThread 的说明有写它是包含在 03/17 00:10
20F:→ LPH66: kernel32.lib / kernel32.dll 里面, 也就是核心那一包里 03/17 00:10
21F:推 schizophrena: 为什麽不用boost? 03/17 09:56
22F:推 AstralBrain: -lpthread (x) -pthread (o) 03/17 12:06
23F:→ Killercat: windows有支援posix thread, 也是default lib 03/17 20:44
24F:推 Killercat: 诶,仔细查了一下我错了... vs没支援posix thread 03/17 20:46
25F:→ Killercat: 是从std::thread才开始有vs支援 03/17 20:46
26F:→ KevinR: 楼上在胡扯什麽东西... 03/17 22:12
27F:→ qwaszx771129: compile flag可能要加参数 04/13 17:08