尝试在CLion / CMake中构建共享库

时间:2016-01-23 17:53:41

标签: c++ dll build cmake clion

我一直在尝试下载和构建Stanford Library源文件,并使用CLion(IDE)构建一个库,用于我自己的项目。我一直在按照this回答的说明操作,我的CMakeLists文件如下所示:

,

打开运行菜单时,我会收到以下信息:Screenshot 1

如果我告诉它无论如何我都会遇到以下错误。

enter image description here

我一直在努力找出为什么我需要一个可执行文件来构建一个库以及那些未定义的引用意味着什么。

2 个答案:

答案 0 :(得分:1)

我不知道这是否是您问题的原因,但include命令应该如下所示:include_directories(${MyHeaders})${MyHeaders}会展开变量MyHeaders并将其当前值传递给include_directories。否则,你确实包括目录MyHeaders

答案 1 :(得分:0)

Standford库提供call_stack_windows.cppcall_stack_gcc.cpp。仅应包括一个。您应使用call_stack_gcc.cppcall_stack_windows.cpp无法与gcc链接。

所以,我的答案是:不要使用globing来声明您的来源。这很容易出错。如果您很懒,只需将find . -name '*.cpp' -o -name '*.h'的输出复制粘贴到您的CMakeList.txt

此外,您显示的CMakeList.txt中有许多不良做法。我建议您阅读this answer