linux中链接错误的时候,快速找到缺失的符号在哪个库中

编译一个opencv程序,链接的时候出现大量的如下错误:

/home/admin/opencv/opencv-master/modules/imgproc/src/color_lab.cpp:23: undefined reference to `cv::s
oftfloat::softfloat(int)‘

softfloat是个什么鬼?应该链接哪个库才行?

vi /home/admin/opencv/opencv-master/modules/imgproc/src/color_lab.cpp

看见源代码里面引用了#include "opencv2/core/softfloat.hpp"

然后softfloat.hpp对应的实现文件是 softfloat.cpp

那么,只要我找到softfloat.cpp被编译到哪个库文件就行了!

于是运行:  nm -A lib64/libopencv*.a | grep "softfloat.cpp"

libopencv_core.a:softfloat.cpp.o:0000000000000000 T _ZNK2cv9softfloatmiERKS0_
libopencv_core.a:softfloat.cpp.o:0000000000000000 T _ZNK2cv9softfloatmlERKS0_
libopencv_core.a:softfloat.cpp.o:0000000000000000 T _ZNK2cv9softfloatneERKS0_

原来是在libopencv_core.a中,命令行中已经加上了这个库,看来是依赖顺序的问题。在gcc命令行最后再加上 -lopencv_core,问题解决。

原文地址:https://www.cnblogs.com/ahfuzhang/p/10843181.html

时间: 2024-10-12 22:02:18

linux中链接错误的时候,快速找到缺失的符号在哪个库中的相关文章

VC中链接错误,提示string重定义

VC链接错误,说是string已经有了实现了,只要 rebuild 一下好了. Linking...LINK : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specificationmsvcprtd.lib(MSVCP71D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<

修改linux的文件时,如何快速找到要修改的内容

? 在linux系统下,找到需要修改的文件.使用cd+目录的命令进行文件所在的目录,使用ls命令查看是否有该文件. ? 使用vim+文件名,打开该文件 ? 快速在文件中找到需要修改的地方.如我们需要修改文件中的fork的值,需要按空格键,在使用/fork,按enter键,就找到fork.如果文件中有多个fork,按N键就可以找到下一个fork,只到找到为止. ? 修改文件内容.需要按i键,进行insert状态,然后对文件进行修改. 原文地址:https://www.cnblogs.com/ins

linux内核调度算法(1)--快速找到最高优先级进程

为什么要了解内核的调度策略呢?呵呵,因为它值得我们学习,不算是废话吧.内核调度程序很先进很强大,管理你的LINUX上跑的大量的乱七八糟的进程,同时还保持着对用户操作的高灵敏响应,如果可能,为什么不把这种思想放到自己的应用程序里呢?或者,有没有可能更好的实现自己的应用,使得操作系统能够以自己的意志来分配资源给自己的进程? 带着这两个问题来看看KERNEL.首先回顾上我们开发应用程序,基本上就两种类型,1.IO消耗型:比如hadoop上的trunk服务,很明显它的消耗主要在IO上,包括网络IO磁盘I

VC++的链接错误LNK2005 已经在*.obj中定义

LNK2005错误--重复定义错误 形成的原因: 1. 重复定义全局变量.可能存在两种情况: A. 对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下.其实这是错误的,全局变量是针对整个工程的.正确的应该是在一个CPP文件中定义如下:int g_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:AAA.obj error LNK2005 in

如何在App中实现IM功能之五快速实现图片接收和发送——箭扣科技Arrownock

如何在App中实现IM功能 之五 快速实现图片接收和发送 社交App中,用户聊天发送或接收图片,是一个非常常见的场景,这里给大家介绍如何利用Arrownock的anSocial的Photo API与anIM结合,来实现发送和接收图片. 发送端详情 当发送方选择好图片点击发送时,为了不影响用户聊天过程中的体验,我们一般会将消息先插入到sqlite数据库中,刷新界面,给这条消息加上Loading动画,表示发送中.而这背后的操作为了能够节省流量的消耗,开发时因为图片往往比较大,所以并不是直接将图片的二

maven无法下载私有库中的jar包

前两天同事遇到一个问题: 同一个工程,依赖私有库中的一个jar包,其他同事的项目都能成功下载,但只有他的项目无法正常下载依赖,最后虽然找到原因了,但还是在这里备注一下: 1.maven依赖管理 maven通过GAV坐标对项目依赖进行管理,如果有公司内部有私有库存在的话,依赖查找的顺序是这样的:本地仓库-->私有仓库-->中央仓库(这是没有配置mirror拦截的情况):如果在setting中配置了mirror,且mirrorOf配置为*,url指向私有库路径,则查找顺序是这样的本地仓库-->

查看当前库中所有的触发器

--查看当前库中所有的触发器: SELECT * FROM Sysobjects WHERE xtype = 'TR' --查看当前库中所有的触发器和与之相对应的表: SELECT tb2.name AS tableName,tb1.name AS triggerName FROM Sysobjects tb1 JOIN Sysobjects tb2 ON tb1.parent_obj=tb2.id WHERE tb1.type='TR' --显示触发器的定义: EXEC sp_helptext

【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。

//编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_stri

Java中的线程--并发库中的集合

线程中的知识点基本都已经学完了,看看Java5并发库中提供的集合... 一.可堵塞队列 队列包含固定长度的队列和不固定长度的队列 ArrayBlockQueue中只有put()方法和take()方法才具有阻塞功能 1.阻塞队列的功能和效果,代码如下: 1 import java.util.concurrent.ArrayBlockingQueue; 2 import java.util.concurrent.BlockingQueue; 3 4 /** 5 * @className: Block