CMakeLists.txt编译不正确

才不是本人 2019-01-25 04:05:13
以下是运行时报错:
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Aborted (core dumped)


以下是子目录CMakeLists.txt文件:
1 add_definitions(-std=c++11 ${CMAKE_OPTION})
2 set(CMAKE_EXE_LINKER_FLAGS "-lpthread -Wall -Werror -lz -ljemalloc")
3 #set(CMAKE_CXX_FLAGS "-pthread")
4
5 aux_source_directory(. SOURCE)
6 include_directories(
7 ${pro_SOURCE_DIR}/include
8 )
9 add_executable(MutiThread_SharedPtr ${SOURCE})
10 target_link_libraries(MutiThread_SharedPtr ${CMAKE_EXE_LINKER_FLAGS})

以下是根目录CMakeLists.txt文件:
1 cmake_minimum_required(VERSION 3.5)
2
3 project(pro)
4 # set(CMAKE_C_COMPILER "gcc")
5 set(CMAKE_CXX_COMPILER "g++")
6 set(CMAKE_OPTION "$ENV{MJOY_OPTION} -Werror -rdynamic -pthread")
7 # set(CMAKE_SOURCE_DIR .)
8 # set(CMAKE_MODULE_PATH ${CMAKE_ROOT}/Modules ${CMAKE_SOURCE_DIR}/cmake/modules)
9 set(LIB_DIR ${pro_SOURCE_DIR}/lib)
10 set(BIN_DIR ${pro_SOURCE_DIR}/bin)
11 set(SRC_DIR ${pro_SOURCE_DIR}/src)
12 set(TEST_MALLOC_DIR ${pro_SOURCE_DIR}/TestMalloc)
13 set(PRO_DIR ${pro_SOURCE_DIR})
14 set(INCLUDE_DIR ${pro_SOURCE_DIR}/include)
15 link_directories(
16 ${INCLUDE_DIR}
17 ${PRO_DIR}
18 ${LIB_DIR}
19 )
20 set(EXECUTABLE_OUTPUT_PATH ${BIN_DIR})
21 set(LIBRARY_OUTPUT_PATH ${LIB_DIR})
22 message("")
23 message("====================================")
24 message(" 编译路径:")
25 message("src = Loading")
26 add_subdirectory( src )
27 message("TestMalloc = Loading")
28 add_subdirectory( TestMalloc )
...全文
336 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
才不是本人 2019-02-15
  • 打赏
  • 举报
回复
class MyThread : public std::thread { public: MyThread() : thread(){} template<typename T, typename...Args> MyThread(T&&func, Args&&...args) : std::thread(std::forward<T>(func), std::forward<Args>(args)...) { } void showcmd(const char* str); //注释掉就错 }; void MyThread::showcmd(const char* str) { system(str); } int main() { MyThread th1([](){ std::cout << "hello" << std::endl; }); th1.showcmd("du -sh *"); th1.detach(); return 0; }
ztenv 版主 2019-01-25
  • 打赏
  • 举报
回复
声明一个支持多线程的宏,有相应的声明语法。
才不是本人 2019-01-25
  • 打赏
  • 举报
回复
g++ -std=c++11 -pthread test.cpp -o run 类似这样的编译是没有问题的

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧