g++编译c++11特性的.cc⽂件
写⼀个.cc⽂件,其中抱哈std::lock_guard以及std::thread等c++11特性,开始使⽤gcc编译,过程中出现如下问题
gcc -o test_lock
This file requires compiler and library support for the ISO C++2011 standard.
This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options
gnu编译器
显然缺少C++11特性,同时使⽤gcc来编译会出现很多std::__throw_system_error(int)未定义的引⽤的问题,因为编译时候gcc和g++是⼀致的,但是链接得时候g++需要链接c++的std模板库,但是gcc编译器并没有,所以会出现如上问题,此时更换编译器为g++即可。
更换g++编译器,并加⼊-std=c++11参数
执⾏如下命令 g++ -std=c++11 -o test_lock
运⾏时出现如下错误,原因时编译时并未⽀持多线程特性,这⾥需要在编译过程中加⼊
[zhanghuigui@localhost c++_practice]$ ./test_lock
terminate called after throwing an instance of 'std::system_error'
what():  Enable multithreading to use std::thread: Operation not permitted
执⾏如下命令即可
g++ -std=c++11 -o test_lock -lpthread

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。