我一直在尝试下载和构建Stanford Library源文件,并使用CLion(IDE)构建一个库,用于我自己的项目。我一直在按照this回答的说明操作,我的CMakeLists文件如下所示:
,
如果我告诉它无论如何我都会遇到以下错误。
我一直在努力找出为什么我需要一个可执行文件来构建一个库以及那些未定义的引用意味着什么。
答案 0 :(得分:1)
我不知道这是否是您问题的原因,但include命令应该如下所示:include_directories(${MyHeaders})
。 ${MyHeaders}
会展开变量MyHeaders
并将其当前值传递给include_directories
。否则,你确实包括目录MyHeaders
。
答案 1 :(得分:0)
Standford库提供call_stack_windows.cpp
和call_stack_gcc.cpp
。仅应包括一个。您应使用call_stack_gcc.cpp
。 call_stack_windows.cpp
无法与gcc
链接。
所以,我的答案是:不要使用globing来声明您的来源。这很容易出错。如果您很懒,只需将find . -name '*.cpp' -o -name '*.h'
的输出复制粘贴到您的CMakeList.txt
。
此外,您显示的CMakeList.txt
中有许多不良做法。我建议您阅读this answer。