2016-05-30 17 views
8

Tôi đang gặp khó khăn trong việc giải quyết một vấn đề cụ thể mà tôi có: Tôi không thể xác định được thủ phạm.OpenCV với CMake phiên bản 3.5.2 so với CMake 2.X.X

hệ thống: Jetson TX1, arm64 hạt nhân, userspace 32b, opencv4tegra

trạng: đã và đang xây dựng dự án sử dụng:

find_package(OpenCV) 

Và điều này đã làm việc tốt và biên soạn.

Lỗi: Tôi xây dựng từ nguồn và cài đặt CMake 3.5.2. Bây giờ tôi không còn có thể xây dựng bất kỳ dự án nào phụ thuộc vào OpenCV. Tôi nhận được lỗi mối liên kết mà điểm không thể tìm thấy:

opencv_dep_cudart 

Tôi giả định các vấn đề đang gây ra trong OpenCVCConfig.cmake, xung quanh thời điểm này:

# Import target "opencv_core" for configuration "Release" 
set_property(TARGET opencv_core APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) 
set_target_properties(opencv_core PROPERTIES 
    IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "opencv_dep_cudart;opencv_dep_nppc;opencv_dep_nppi;opencv_dep_npps;dl;m;pthread;rt;tbb" 
    IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libopencv_core.so.2.4.12" 
    IMPORTED_SONAME_RELEASE "libopencv_core.so.2.4" 
) 

Out of the file: /usr/share/OpenCV/OpenCVModules-release.cmake

Tuy nhiên, điều này tập tin không thay đổi giữa các phiên bản CMake vì nó là một tệp OpenCV. Vì vậy, đây phải là cách nó được xử lý.

Hoàn nguyên CMake của tôi về 2.8.12.2 theo cách thủ công cho phép tôi tạo lại. Đây là một ví dụ về lệnh make sử dụng OpenCV. Lưu ý đúng libs cuda:

Linking CXX executable DuoInterfaceTest 
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/DuoInterfaceTest.dir/link.txt --verbose=1 
/usr/bin/c++ -O2 -g -DNDEBUG -std=gnu++11 CMakeFiles/DuoInterfaceTest.dir/src/mainTest.cpp.o -o DuoInterfaceTest -L/home/ubuntu/catkin_ws/duointerface/lib/linux/arm -rdynamic libDuoInterface.a /usr/lib/libopencv_vstab.so.2.4.12 /usr/lib/libopencv_tegra.so.2.4.12 /usr/lib/libopencv_imuvstab.so.2.4.12 /usr/lib/libopencv_facedetect.so.2.4.12 /usr/lib/libopencv_esm_panorama.so.2.4.12 /usr/lib/libopencv_detection_based_tracker.so.2.4.12 /usr/lib/libopencv_videostab.so.2.4.12 /usr/lib/libopencv_video.so.2.4.12 /usr/lib/libopencv_ts.a /usr/lib/libopencv_superres.so.2.4.12 /usr/lib/libopencv_stitching.so.2.4.12 /usr/lib/libopencv_photo.so.2.4.12 /usr/lib/libopencv_objdetect.so.2.4.12 /usr/lib/libopencv_ml.so.2.4.12 /usr/lib/libopencv_legacy.so.2.4.12 /usr/lib/libopencv_imgproc.so.2.4.12 /usr/lib/libopencv_highgui.so.2.4.12 /usr/lib/libopencv_gpu.so.2.4.12 /usr/lib/libopencv_flann.so.2.4.12 /usr/lib/libopencv_features2d.so.2.4.12 /usr/lib/libopencv_core.so.2.4.12 /usr/lib/libopencv_contrib.so.2.4.12 /usr/lib/libopencv_calib3d.so.2.4.12 /usr/lib/libopencv_tegra.so.2.4.12 /usr/lib/libopencv_stitching.so.2.4.12 /usr/lib/libopencv_gpu.so.2.4.12 /usr/lib/libopencv_photo.so.2.4.12 /usr/lib/libopencv_legacy.so.2.4.12 /usr/local/cuda-7.0/lib/libcufft.so /usr/lib/libopencv_video.so.2.4.12 /usr/lib/libopencv_objdetect.so.2.4.12 /usr/lib/libopencv_ml.so.2.4.12 /usr/lib/libopencv_calib3d.so.2.4.12 /usr/lib/libopencv_features2d.so.2.4.12 /usr/lib/libopencv_highgui.so.2.4.12 /usr/lib/libopencv_imgproc.so.2.4.12 /usr/lib/libopencv_flann.so.2.4.12 /usr/lib/libopencv_core.so.2.4.12 /usr/local/cuda-7.0/lib/libcudart.so /usr/local/cuda-7.0/lib/libnppc.so /usr/local/cuda-7.0/lib/libnppi.so /usr/local/cuda-7.0/lib/libnpps.so -ldl -lm -lpthread -lrt -ltbb -lDUO -Wl,-rpath,/home/ubuntu/catkin_ws/duointerface/lib/linux/arm:/usr/local/cuda-7.0/lib 

Suy nghĩ? Tôi muốn có thể giữ CMake mới hơn trên hệ thống của mình nhưng không hiểu đủ để khắc phục sự cố. Nếu bạn cho rằng điều này quá độc đáo với hệ thống, tôi sẽ rút câu hỏi.

+0

Đối với tôi cùng một vấn đề tồn tại nếu tôi xây dựng các dự án phụ thuộc vào 2.4. –

+1

Ok, như thiết lập workaround trong cmake 'CUDA_USE_STATIC_CUDA_RUNTIME = false' không hoạt động –

Trả lời

2

Theo ghi nhận của Michael Mairegger, bạn phải cmake trong thư mục build bằng cách làm

sudo cmake .. -DCUDA_USE_STATIC_CUDA_RUNTIME=false 

Nhưng có một điều tôi nhận thấy thêm là nếu tôi cố gắng make sau đó nó sẽ không làm việc trừ khi tôi làm cmake lệnh hai lần.

Các vấn đề liên quan