linux编译运行c++多线程程序

引言

Linux下编译运行普通的C++程序此前已有文章介绍不再累述。
下文主要介绍Linux下如何编译多线程的c++程序。

正文

首先尝试编译.cpp文件(例中文件名test2.cpp)。执行“g++ test2.cpp”后可看到编译不通过,报了许多错。
linux编译运行c++多线程程序_第1张图片
不通过原因为涉及多线程的c++程序编译需要使用c++11进行编译。编译时要加“-std=c++11”。
输入“g++ -std=c++11 test2.cpp -o test2.out”,可以成功编译但不能正确执行。
linux编译运行c++多线程程序_第2张图片
原因为编译时未正确链接POSIX thread 库。
加入“-pthread”,执行“g++ -std=c++11 test2.cpp -o test2.out -Wl,–no-as-needed -pthread”。
编译通过,执行./test2.cpp可正常执行。
linux编译运行c++多线程程序_第3张图片

补充

为何是使用“-pthread”而不是“-lpthread”。
这是因为“-pthread”兼容更好,gcc 4.5.2中已经没有了关于 -lpthread的介绍了。

你可能感兴趣的:(linux,linux,c++)