我的 CMakeLists.txt 文件出了什么问题?
What's wrong with my CMakeLists.txt file?
我正试图通过CMake编译一个非常小的程序,但当我编译它并尝试构建它时,它会给我一个错误:
fatal error LNK1181: cannot open input file '.cm_project.dirSharedCRT-Releasedummy.obj'
dummy.cpp是我项目中的一个源文件。CMakeLists.txt文件如下所示:
project( cm_project )
set(SOURCES
src/dummy.cpp
include/version.h
)
add_library( cm_project STATIC ${SOURCES} )
set(LIBRARY_OUTPUT_PATH
$(PlatformName)
)
我错过什么了吗?提前谢谢。
这只是一个猜测,但可能是dummy.cpp由于错误而没有编译,并且因为它没有编译,所以链接器没有可链接的dummy.obj,因此您看到了链接器错误。奇怪的是没有编译器错误(或者没有报告)。
我试图在我的系统上复制这一点,不幸的是,在这种情况下,它不是Windows,而是一台Mac,我的目标是Unix makefile(cmake -G "Unix Makefiles"
)。我最初将dummy.cpp和version.h(dumm.cpp包含了#)保存在与CMakeLists.txt相同的目录中,并且它没有出错。当我把dummy.cpp移到src子目录,把version.h移到include子目录时,编译中断了,因为编译器不知道在哪里可以找到version.h。我需要添加这样一行来告诉它在哪里:
include_directories(./include)
顺便说一句,我最初在CMakeLists.txt文件中有一行像set(LIBRARY_OUTPUT_PATH $(PlatformName))
(PlatformName周围有括号),但在调用CMake后,我最终得到了一个名为$(PlatformName)的目录。我将其更改为在PlatformName(set(LIBRARY_OUTPUT_PATH ${PlatformName})
)周围使用大括号,并且没有创建那个伪造的目录。也许这与你的问题有关。
相关文章:
- 警告处理为错误这里有什么问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题
- 违反const正确性:我应该现实地期待什么问题
- 这个带有模板<类 Vector 的C++代码片段有什么问题>
- 我的逻辑反转字符串中的元音有什么问题?
- 需要以下代码的帮助,下面的代码有什么问题
- 常量公共成员有什么问题?
- 以下代码中的函数模板有什么问题?
- 这个返回元素位置的基于循环的函数有什么问题?
- creat_list2功能有什么问题?
- 格式说明符C++有什么问题
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 我的堆栈和库存清单程序的结构有什么问题?
- 此工厂功能有什么问题?
- 以下 C++ 代码有什么问题?
- 数组为此合并排序函数提供了正确的输出,但向量给出了不正确的输出.出了什么问题?
- reinterpret_cast,只读访问,简单的可复制类型,会出什么问题?
- 它解决了什么问题,对于非真空初始化,生命周期在初始化之前就开始了