我有一個非常簡單CMakeLists.txt
CMake的Linux上:「目標平臺不支持動態鏈接」
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作爲示例。
確實。出於某種原因,此處的Linux機器上未設置「TARGET_SUPPORTS_SHARED_LIBS」。顯式設置'SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)'會消除警告。 –