Lier des librairies dynamiques et statiques, utilisation de CMake
Bonjour,
Je travaille sous ubuntu et je souhaite créer un exécutable qui inclue les librairies dont j'ai besoin. J'utilise deux librairies : OpenCV qui est dynamique (.so) et une autre librairie statique (.a) CryptoPP.
Voici mon CMake :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
cmake_minimum_required(VERSION 2.8)
project( Projet )
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/contrib/cmake")
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
SET(BUILD_SHARED_LIBRARIES ON)
SET(CMAKE_EXE_LINKER_FLAGS "-static")
if(WIN32)
set(OpenCV_DIR "d:/libs/opencv-2.4.10/build")
else()
set(OpenCV_DIR "/usr/lib/opencv")
endif()
find_package(OpenCV REQUIRED core imgproc highgui)
find_package( Cryptopp REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable( Projet projet.cpp )
target_link_libraries( Projet ${CRYPTOPP_LIBRARIES} ${OpenCV_LIBS}) |
Cependant j'ai une erreur :
Code:
1 2
|
/usr/bin/ld: attempted static link of dynamic object `/usr/local/lib/libopencv_core.so.2.4.10' |
J'ai essayé de séparer mes librairies en deux groupes (statique et dynamique) dans le CMake mais je n'ai pas réussis Si sous avez la moindre idée du problème merci d'avance.
Cordialement,
Laura
Lier des librairies dynamiques et statiques, utilisation de CMake
Bonjour,
J'ai le même soucis.