我有一个非常简单的CMakeLists.txt文件。
为了表明共享库
但是使用上述脚本创建Makefile时,CMake会抱怨。
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE(VTK REQUIRED)
PROJECT(test CXX)
这段代码实际上并没有执行任何操作。VTK软件包已经正确地安装在 /usr/lib/vtk-5.8/VTKConfig.cmake
目录下。该文件包含了一些类似于以下语句的声明:
ADD_LIBRARY(foobar SHARED IMPORTED)
为了表明共享库
libfoobar.so
需要链接到可执行文件中。但是使用上述脚本创建Makefile时,CMake会抱怨。
CMake Warning (dev) at /usr/lib/vtk-5.8/VTKTargets.cmake:244 (ADD_LIBRARY):
ADD_LIBRARY called with SHARED option but the target platform does not
support dynamic linking. Building a STATIC library instead. This may lead
to problems.
Call Stack (most recent call first):
/usr/lib/vtk-5.8/VTKConfig.cmake:200 (INCLUDE)
/usr/share/cmake-2.8/Modules/FindVTK.cmake:73 (FIND_PACKAGE)
CMakeLists.txt:4 (FIND_PACKAGE)
This warning is for project developers. Use -Wno-dev to suppress it
这个警告的意思是什么,应该如何处理?
这是一个带有CMake 2.8.9的Linux系统。虽然所有包含ADD_LIBRARY(foobar SHARED IMPORTED)
的软件包都会出现此错误消息,但这里以VTK-5.8为例。
FIND_*
命令在工具链文件中的情况下不适用。请参见https://cmake.org/Bug/view.php?id=15999。 - Antonioproject
之前调用了find_package
,我交换了它们的位置,错误就消失了。 - Apeiron