繁体   English   中英

CMake添加opencv

CMake adding opencv

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试图在cmake中包含opencv2.4.9:

cmake_minimum_required(VERSION 2.8.3)
project(HydroCamel)
SET(CMAKE_CXX_FLAGS "-lpthread")
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)
catkin_package()
set(SRC_FOLDER src/src)
set(ALOGS_FOLDER src/Algos)
set(ALOGS_UTILS_FOLDER src/Algos/Utils)
set(SRC_INCLUDE_FOLDER src/include)
set(DIRS ${SRC_FOLDER} ${ALOGS_FOLDER} ${ALOGS_UTILS_FOLDER} ${SRC_INCLUDE_FOLDER})
include_directories(${DIRS})

file(GLOB_RECURSE SRC_FILES "*.h" "*.cpp")
include_directories(include ${catkin_INCLUDE_DIRS})

set(Boost_USE_STATIC_LIBS OFF) 
set(Boost_USE_MULTITHREADED ON)  
set(Boost_USE_STATIC_RUNTIME OFF) 
find_package(Boost 1.55.0 COMPONENTS filesystem system thread)
#FIND_PACKAGE(OpenCV REQUIRED core imgproc highgui)
include_directories(${OpenCV_INCLUDE_DIRS})
if(Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIRS}) 
    add_executable(SourceFiles ${SRC_FILES})
    TARGET_LINK_LIBRARIES(SourceFiles ${Boost_LIBRARIES})
    TARGET_LINK_LIBRARIES(SourceFiles ${OpenCV_LIBS})
endif()

我收到此错误:

HydroCamel / CMakeLists.txt:28(find_package)的CMake错误:找到程序包配置文件:

 /home/jdorfsman/opencv-2.4.9/build/OpenCVConfig.cmake 

但是将OpenCV_FOUND设置为FALSE,因此认为软件包“ OpenCV”未找到。

-配置不完整,发生错误! 另请参阅“ /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeOutput.log”。 另请参阅“ /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeError.log”。

这是CMakeError.log文件:

Determining if the pthread_create exist failed with the following output:
Change Dir: /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec1061744568/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1061744568.dir/build.make CMakeFiles/cmTryCompileExec1061744568.dir/build
make[1]: Entering directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o
/usr/bin/cc    -o CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o   -c /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTryCompileExec1061744568
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1061744568.dir/link.txt --verbose=1
/usr/bin/cc       CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o  -o cmTryCompileExec1061744568 -rdynamic 
CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make[1]: *** [cmTryCompileExec1061744568] Error 1
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec1061744568/fast] Error 2

File /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp

Run Build Command:/usr/bin/make "cmTryCompileExec3426763052/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3426763052.dir/build.make CMakeFiles/cmTryCompileExec3426763052.dir/build
make[1]: Entering directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-2.8/Modules/CheckFunctionExists.c
Linking C executable cmTryCompileExec3426763052
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3426763052.dir/link.txt --verbose=1
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTryCompileExec3426763052.dir/CheckFunctionExists.c.o  -o cmTryCompileExec3426763052 -rdynamic -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [cmTryCompileExec3426763052] Error 1
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec3426763052/fast] Error 2
1 个回复

看起来您没有指定pthread标志。

CMakeFiles/cmTryCompileExec1061744568.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make[1]: *** [cmTryCompileExec1061744568] Error 1
make[1]: Leaving directory `/home/jdorfsman/catkin_ws/build/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec1061744568/fast] Error 2

尝试添加:

SET(CMAKE_CXX_FLAGS "-lpthread")
1 CMake乱序添加OpenCV库

我需要在链接过程中控制库的顺序,但是CMake使用OpenCV库做奇怪的事情。 请参阅以下CMakeLists.txt: 构建生成的makefile时,库按以下顺序链接: 到目前为止一切都很好(FOO需要倒数第二个)。 但是,如果我添加另一个opencv库: 然后,链 ...

2 在cmake中添加opencv --help-module

我喜欢--help-module提供的帮助。 在这里,您可以阅读如何添加新库以及正在设置哪些变量。 因为我只是偶尔创建一个框架,所以我只添加了一次库,而忘记了下次如何添加它们。 因此,如果我想创建一个新项目,则只需使用--help-module和我要使用的包进行快速搜索。 不幸的是, ...

3 通过cmake将opencv添加到Android Native

我正在尝试使用OpenCV拼接库来拼接图像。 为此,我成功导入了OpenCV库,并通过CMake设置了本机C ++环境。 但是我在运行时收到以下错误: 我的CMakeLists.txt文件是: 我想在我的C ++文件中使用以下库: ...

4 尝试添加opencv库时CMake错误

我正在尝试使用深度传感器,并尝试获取灰度图像并使用OpenCV显示它。 我可以从深度传感器访问数据而没有任何问题。 但是,当我尝试在CMakeLists.txt中包含OpenCV部分时,出现以下错误: 我的CMakeLists.txt如下所示: 我是CMake的新手。 因此 ...

5 CMake的openCV

我有以下问题,尽管我的项目使用CMake正确构建,但此后我出错,无法找到“ opencv2 / core / core.hpp”。 我正在发布我的CMakelists.txt配置,非常感谢您的帮助。 我还要补充一点,“查找包(需要OPENCV)”无法正常工作。 ...

8 如何安装opencv和cmake

我希望对我的项目(c ++)使用opencv,因为它具有很多功能,所以我尝试安装opencv,但是我无法理解他们的用户指南中提到的内容。 根据他们的指示,我尝试安装Cmake,但没有成功。 因此,如何使用--prefix =选项为CMake指定自定义安装目录。 根据他们的指示,我应该执行以 ...

9 openCV:CMAKE的库扩展

我在Windows上使用CMAKE从源代码构建了OpenCV,我注意到编译后的库具有版本扩展名。 因此,我有一些用以下名称构建的库: opencv_dnn341.lib其中341 ,我猜想代表的是opencv版本3.4.1。 现在,当我尝试在另一个CMAKE项目中使用它时,便有了它来找到 ...

10 CMake错误配置opencv

我一直在尝试使用flandmark代码进行面部检测。 为了编译这些库,我需要运行CMAKE.gui.exe。 但是我一直遇到同样的错误,而且似乎没人知道如何解决它。 如果有人可以帮助,我将不胜感激。 但它将OPENCV_FOUND设置为FALSE,因此认为软件包“ OpenCV”未 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM