我正在尝试运行cmake来生成makefile.在最小的工作示例中,我有三个文件和一个构建目录.
文件1是CMakeLists.txt,包含:
add_library (MathFunctions SHARED mysqrt.cxx)
install (TARGETS MathFunctions LIBRARY DESTINATION lib)
Run Code Online (Sandbox Code Playgroud)
文件2是包含函数原型的MathFunctions.h,函数与mysqrt.cxx有关.
文件3是包含include语句和函数定义的mysqrt.cxx.
当我创建一个构建子目录并运行"cmake .."时,我得到了
CMake Error at CMakeLists.txt:2 (install):
install Library TARGETS given no DESTINATION!
Run Code Online (Sandbox Code Playgroud)
是不是我的add_library,那么install语句语法是否正确?如果我删除了SHARED和LIBRARY,则cmake构建没有错误.
谢谢你的帮助.
Fra*_*ser 12
问题可能取决于你在CMake所谓的"DLL平台"上运行这个问题,以及CMake如何在这样的平台上对共享库进行分类.
来自以下文档install
:
对于DLL平台,共享库的DLL部分被视为
RUNTIME
目标,相应的导入库被视为ARCHIVE
目标.包括Cygwin在内的所有基于Windows的系统都是DLL平台.
因此,尝试将命令更改为:
install (TARGETS MathFunctions
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11197 次 |
最近记录: |