首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

QEMU 编译报错 undefined reference to g_app_info_launch_default_for_uri_finish 解决过程

) libz.so.1 => /lib64/libz.so.1 (0x00007f198d6d1000) libGL.so.1 => /lib64/libGL.so.1...) 观察输出,所有依赖的动态链接库都有指向一个内存地址,说明所依赖的链接库都已经被加载入内存,排除了链接库不存在情况,下面就有可能是某个链接库有问题了,接下来做两件事: 使用 objdump -T lib...name and path> |grep 命令检索报错函数属于哪一个链接库; 使用 find / -name lib name> 命令查找是否有哪一个报错链接库在系统的动态链接库搜索目录中有多个.../libgio-2.0.so ,其中 /lib64 为系统默认链接库存放位置,而 /usr/local 为编译安装库的默认安装位置,移除/usr/local/lib/libgio-2.0.so 之后再次尝试编译发现报错减少了...总结# 本次编译错误排查了很久,最后在大佬的协助下终于解决,此类缺少依赖错误排查错误思路可以总结为 检查链接库是否存在 -> 检查是否存在重复链接库 -> 移除错误链接库 。

44720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux命令(65)——ld命令

    这告诉动态链接器,正在创建的共享对象的符号表应该用作共享对象名称的符号表的筛选器。 -g:被忽略。...这仅在生成动态链接的ELF可执行文件时才有意义。默认的动态链接器通常是正确的,除非您知道正在做什么,否则不要使用该选项。...-M,--print-map:显示链接映射,用于诊断目的 -Map=: 将链接映射输出到指定的文件 -m : 模拟指定的链接器 -N,--omagic: 指定读取...当链接大型可执行文件时,如果ld耗尽内存空间,则可能需要使用该选项 -O :对于非零的优化等级,ld将优化输出。此操作会比较耗时,应该在生成最终的结果时使用。...=:从指定的文件读取符号名称和地址 -r,--relocatable:生成可重定位的输出(称为部分连接) -rpath=:把指定的目录添加到运行时库搜索路径 -rpath-link

    17.7K13

    如何优雅的调试段错误

    bit1: 值为 1 表示是写操作导致内存访问越界,值为 0 表示是读操作导致内存访问越界。...整行代码的意思要把 rdi 寄存器的某个偏移处的数据复制给 eax 寄存器,前面我们知道引起错误的原因是 用户态程序,读内存越界,原因是非法地址,而不是没权限,所以就是说读取 0xc0(%rdi) 发生错误...由此我们大概知道这里是读取函数的第一个参数的某个偏移量,推测第一个参数是一个结构,这个偏移量是结构的某个成员,而这个结构的地址目前是个无效地址,所以取偏移量会引起读取内存出错。...libc 的调试符号: $ locate libc-2.27.so /lib/i386-linux-gnu/libc-2.27.so /lib/x86_64-linux-gnu/libc-2.27.so.../usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so 发现 /usr/lib/debug/lib/x86_64-linux-gnu/  下有一个 libc

    4.7K52

    Linux目录及文件相关知识整理

    x 表示拥有此权限的用户可以进入该目录中,无法进入该目录便不能读取目录中文件中的内容,但是如果有目录的 r 权限,是可以查看文件及目录列表的,注意这两者的区别,x 是文件内容,r 是文件名称。...符号类型 使用符号 u,g,o 来代表 User(Owner),Group,Other,通过给这三个符号赋值(=),加入(+),除去(-) rwx 来设置权限,另外还可以使用 a 表示所有用户(All)...某些不被一般使用者惯用的可执行文件或脚本目录,如 X 图形窗口下面的操作指令 /usr/local 软件的安装目录 /usr/sbin 非系统正常运行所需要的系统指令...包括下面这些: /bin -> /usr/bin /sbin -> /usr/sbin /lib -> /usr/lib /lib64 -> /usr/lib64 /var/lock -> /run/lock...:若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身 -f :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次 -i :若目标文件(destination

    1.3K40

    都是软件版本兼容惹的祸:龙芯 UOS 系统上 Qt Creator 启动失败

    LLVM ERROR: inconsistency in registered CommandLine options AI 给的回答是: 这个错误通常是由于系统中存在多个版本的 LLVM 库,或者多个程序都链接到了同一个....5 (0x000000fff316c000) libGL.so.1 => /lib/loongarch64-linux-gnu/libGL.so.1 (0x000000fff3010000...解决的方法就是重命名,不加载这个插件: $ sudo mv /usr/lib/loongarch64-linux-gnu/qtcreator/plugins/libClangTools.so /usr/...lib/loongarch64-linux-gnu/qtcreator/plugins/libClangTools.so.bak 完成上述操作后,重新启动 Qt Creator,熟悉的界面终于出现了:...例如,开发者可能无法直接访问沙箱内部的日志文件、调试信息或运行状态,需要借助额外的工具或命令来进入沙箱环境进行调试。这不仅增加了调试的复杂度,也可能导致开发效率的降低。

    6300

    使用编译器

    命令行编译器会自动从文件系统中读取导入的文件,但也可以按照以下方式使用prefix = path来提供路径重定向: solc github.com/ethereum/dapp-bin/=/usr/local.../lib/dapp-bin/ =/usr/local/lib/fallback file.sol 这本质上指示编译器搜索以/usr/local/lib/dapp-bin下的github.com/ethereum.../dapp-bin/开头的任何内容,如果它没有在那里找到该文件,它将查看/usr/local/lib/fallback(空的前缀总是匹配)。...如果使用选项--link调用solc,则所有输入文件被解释为以上给出的__LibraryName ____格式的非链接二进制文件(十六进制编码),并就地链接(如果从stdin读取输入,则将其写入 到标准输出...DeclarationError:无效的,无法解析的或冲突的标识符名称。例如标识符未找到 TypeError:类型系统中的错误,例如无效类型转换,无效赋值等。

    1.4K20

    linux动态库和静态库

    通常这样做就可以解决库无法链接的问题了。 二、静态库链接时搜索路径的顺序: 1. ld会去找gcc/g++命令中的参数-L; 2....再找默认库目录 /lib /usr/lib /usr/local/lib,这是当初compile gcc时写在程序内的。 三、动态链接时、执行时搜索路径顺序: 1....一、静态库解析符号引用: 链接器ld是如何使用静态库来解析引用的。在符号解析阶段,链接器从左至右,依次扫描可重定位目标文件(*.o)和静态库(*.a)。...在这个过程中,链接器将维持三个集合: 集合E:可重定位目标文件(*.o文件)的集合。 集合U:未解析(未定义)的符号集,即符号表中UNDEF的符号。...2、如果f是一个静态库(.a),那么链接器将尝试匹配U中未解析符号与静态库成员(静态库的成员就是.o文件)定义的符号。

    12.4K20

    i.MX6ULL嵌入式Linux开发4-根文件系统构建

    proc里面的文件都是临时存在的,一般用来存储系统运行信息文件 /usr 注意,usr不是user的缩写,而是Unix Software Resource的缩写,即Unix操作系统软件资源目录。...lib库文件从交叉编译器中获取,之前搭建交叉编译环境的时候将交叉编译器存放到了“/usr/local/arm/”目录中,进入对应的目录: cd /usr/local/arm/gcc-linaro-4.9.4.../lib/ -d 后面的“-d”表示拷贝符号链接,这里有个比较特殊的库文件:ld-linux-armhf.so.3,此库文件也是个符号链接,相当于 Windows 下的快捷方式。...但是,ld-linux-armhf.so.3不能作为符号链接,否则的话在根文件系统中执行程序无法执行!所以我们需要重新复制ld-linux- armhf.so.3,替换掉这个软链接。...尝试换用其它的串口软件(SecureCRT)来操作(无效) 3.2.3 有效的解决方法 最后,参考这篇博文:https://blog.csdn.net/InFoport/article/details/

    1.1K50

    如何通过solc编译solidity编写的以太坊智能合约

    命令行编译器会自动读取需要导入的文件,也可以通过使用prefix = path来指定路径,例如: solc github.com/ethereum/dapp-bin/=/usr/local/lib/dapp-bin.../ =/usr/local/lib/fallback file.sol 这样编译器就会从指定目录github.com/ethereum/dapp-bin/下的/usr/local/lib/dapp-bin.../目录开始搜索,如果没有找到文件,它将查看/usr/local/lib/fallback。...如果用选项--link调用Solc,则所有输入文件都被解释为未链接的二进制文件(HEX编码),在上面给出的__LibraryName____格式中,将其链接到适当地址(如果从stdin读取输入,则将其写入...Exception:例外,编译过程中未知的故障,这应该作为一个问题反馈。 CompilerError:编译错误,编译器堆栈的使用无效,这应该作为一个问题来反馈。

    2.4K10

    ELF文件及android hook原理

    这个数组的第一个元素,也就是下标为0的元素为无效的”未定义”符号。 他们的定义如下: ?...第二步 符号解析与重定位 使用第一步中收集到的信息,读取输入文件中段的数据、重定位信息,并且进行符号解析与重定位、调整代码中的地址等 使用ld链接器将”a.o”和”b.o”链接起来: $ld a.o b.o...进程的建立需要做下面三件事情: 创建一个独立的虚拟地址空间 读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系。 将CPU的指令寄存器设置成可执行文件的入口地址,启动运行。...与普通程序不同的是,动态链接模块的装载地址是从地址0x00000000开始的,这个地址是无效的,共享对象的最终装载地址在编译时时不确定的,而是在装载时,装载器根据当前地址空间的空前情况,动态分配一块足够大小的虚拟地址空间给相应的共享对象...地址无关代码(PIC) 装载时重定位是解决动态模块中有绝对地址引用的方法之一,但是它有一个很大的缺点是指令部分无法在多个进程之间共享,这样就失去了动态链接节省内存的一大优势。

    3.9K81

    【Linux】《how linux work》第二章 基本命令和目录层次结构(3)

    例如,要将组(g)和其他(o,表示“其他人”)的读取(r)权限添加到文件中,可以运行以下两个命令:$ chmod g+r file$ chmod o+r fileOr you could do it all...符号链接可以快速访问晦涩的目录路径。...另一个问题是,仅仅通过查看链接的名称,您无法确定链接目标的特性;您必须跟随链接以查看它指向的是文件还是目录。您的系统还可能存在指向其他链接的链接,这被称为链接链。...如果在创建指向目录的符号链接时出现问题,请检查该目录是否存在错误的符号链接并将其删除。...如果没有使用该选项,ln命令会创建一个硬链接,为单个文件提供一个额外的真实文件名。新的文件名具有旧文件名的状态;它直接指向文件数据,而不像符号链接那样指向另一个文件名。硬链接可能比符号链接更令人困惑。

    10710

    基于嵌入式的车载导航定位系统设计

    希望车载导航系统能够具备更高的定位精度、更丰富的地图信息、更便捷的操作体验以及更强的可扩展性。...主控开发板选用GEC6818开发板,其高性能的处理器和嵌入式Linux系统为系统的稳定运行提供了有力支持。GPS模块选用北斗GPS模块,以确保定位的准确性和稳定性。.../lib/x86_64-linux-gnu/mesa/libGL.so.1 //如果提示这两行, 说明系统有这个库 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0...下面只需要做一个链接即可: sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so 如果系统里没有查找到库, 就在命令行敲下面命令进行在线安装...(2)打开音频文件并循环读取文件中的数据,每次将一定数量的数据写入PCM设备进行播放。在播放过程中,如果发生错误们需要重新配置PCM设备并重新开始播放。

    48800

    Linux下动态库(.so)和静态库(.a) 的区别

    动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便 不同的UNIX系统,链接动态库方法,实现细节不一样 编译PIC型.o中间文件的方法一般是采用C语言编译器的-KPIC或者-fpic选项...,有的UNIX版本C语言编译器默认带上了PIC标准.创建最终动态库的方法一般采用C语言编译器的-G或者-shared选项,或者直接使用工具ld创建。...最主要的是GCC命令行的一个选项: -shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。...:表示要连接的库在当前目录中 -ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称 LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径.../libd.so (0xb7f0f000)  //这个动态库文件比静态编译多的         libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7e2b000

    17.4K21

    Docker疑难杂症汇总一

    Docker 迁移存储目录 默认情况系统会将 Docker 容器存放在 /var/lib/docker 目录下 问题起因:今天通过监控系统,发现公司其中一台服务器的磁盘快慢,随即上去看了下,发现 /var...$ sudo mv /var/lib/docker /data/ # 3.添加软链接 $ sudo ln -s /data/docker /var/lib/docker # 4.启动docker服务...289G 179G 62% /mnt 如果发现真的是物理磁盘空间满了的话,就需要查看到底是什么占据了如此大的空间,导致因为容器没有空间无法启动。...解决的方法也很简单,第一就是清理无效数据文件释放磁盘空间(清除日志),第二就是修改 docker 数据的存放路径(大分区)。...操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块(block)。这种由多个扇区组成的块,是文件存取的最小单位。

    76130
    领券