Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake add_库,然后是安装库目标_Cmake - Fatal编程技术网

cmake add_库,然后是安装库目标

cmake add_库,然后是安装库目标,cmake,Cmake,我正在尝试运行cmake来生成makefile。在最简单的工作示例中,我有三个文件和一个构建目录 文件1是CMakeLists.txt,确切包含: add_library (MathFunctions SHARED mysqrt.cxx) install (TARGETS MathFunctions LIBRARY DESTINATION lib) 文件2是MathFunctions.h,包含函数原型,函数与mysqrt.cxx相关 文件3是mysqrt.cxx,包含include语句和函数定

我正在尝试运行cmake来生成makefile。在最简单的工作示例中,我有三个文件和一个构建目录

文件1是CMakeLists.txt,确切包含:

add_library (MathFunctions SHARED mysqrt.cxx)
install (TARGETS MathFunctions LIBRARY DESTINATION lib)
文件2是MathFunctions.h,包含函数原型,函数与mysqrt.cxx相关

文件3是mysqrt.cxx,包含include语句和函数定义

当我创建一个build子目录并运行“cmake..”时,我得到

CMake Error at CMakeLists.txt:2 (install):
  install Library TARGETS given no DESTINATION!
我的add_库then install语句语法是否正确?如果我同时删除共享和库,那么cmake构建时不会出错


感谢您的帮助。

问题可能在于您在CMake称之为“DLL平台”的平台上运行此功能,以及CMake如何在这样的平台上对共享库进行分类

从以下文件:

对于DLL平台,共享库的DLL部分被视为
运行时
目标,相应的导入库被视为
存档
目标。包括Cygwin在内的所有基于Windows的系统都是DLL平台

因此,请尝试将命令更改为:

install (TARGETS MathFunctions
         ARCHIVE DESTINATION lib
         LIBRARY DESTINATION lib
         RUNTIME DESTINATION bin)

您好,弗雷泽,您认为您可以解释一下归档/库/运行时之间的区别吗?从文档中我不太清楚