ใช้บิลด์แบบคงที่แทนบิลด์ที่ใช้ร่วมกันของ OpenCV ในโปรเจ็กต์ CMake ของฉัน

อย่างไรก็ตาม โปรเจ็กต์ CMake ของฉันใช้ OpenCV แต่จะลิงก์ไปยังบิลด์ที่ใช้ร่วมกัน ซึ่งต้องใช้ OpenCV DLLs เพื่อให้ปฏิบัติการของฉันทำงานได้ ฉันจะบอกให้ CMake ใช้บิลด์คงที่ของ OpenCV แทนได้อย่างไร

ฉันควรเปลี่ยนแปลงอะไรในไฟล์ CMakeList.txt นี่คือลักษณะที่ปรากฏในขณะนี้:

cmake_minimum_required(VERSION 2.8)
project (Tutorial)
find_package (OpenCV REQUIRED)
add_executable (Tutorial WIN32 main.cpp)
target_link_libraries (Tutorial ${OpenCV_LIBS})

person sashoalm    schedule 28.11.2014    source แหล่งที่มา


คำตอบ (1)


ฉันพบคำตอบจาก https://stackoverflow.com/a/26920527/492336:

จริงๆ แล้ว ดูเหมือนว่าปัญหานี้จะได้รับการแก้ไขแล้วใน OpenCVConfig.cmake ที่มาพร้อมกับ OpenCV สิ่งที่คุณต้องทำคือกำหนด OpenCV_STATIC ใน CMakeLists.txt ของคุณ เช่น.

set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)

สิ่งนี้ได้ผลสำหรับฉัน แม้ว่าฉันจะต้องระบุ CRT ให้เป็นแบบคงที่เช่นกัน (เนื่องจาก OpenCV แบบคงที่เชื่อมโยงกับ CRT แบบคงที่)

person sashoalm    schedule 28.11.2014