编译运行错误排查方法
发布时间:2020-12-16 10:48:10 所属栏目:百科 来源:网络整理
导读:目录 编译时头文件找不到 编译时符号找不到 编译时库找不到 运行时库找不到 运行时库搜索路径顺序 运行时库搜索路径查看 不同工具链适配时符号找不到 不同工具链编译出的程序运行出错 参考 编译时头文件找不到 编译flags -v,显示所有头文件搜索路径 宏是否
目录
编译时头文件找不到
编译时符号找不到
编译时库找不到
运行时库找不到运行时库搜索路径顺序
运行时库搜索路径查看
ldd ./exe_json linux-vdso.so.1 => (0x00007ffdfd3ed000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2441ae6000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f24417dd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2441413000) /lib64/ld-linux-x86-64.so.2 (0x00007f2441d03000)
(部分嵌入式linux系统编译固件时,没有开这个功能) strace -e trace=open ./exe_json open("/etc/ld.so.cache",O_RDONLY|O_CLOEXEC) = 3 open("/lib/x86_64-linux-gnu/libpthread.so.0",O_RDONLY|O_CLOEXEC) = 3 open("/lib/x86_64-linux-gnu/libm.so.6",O_RDONLY|O_CLOEXEC) = 3 open("/lib/x86_64-linux-gnu/libc.so.6",O_RDONLY|O_CLOEXEC) = 3 +++ exited with 0 +++ 不同工具链适配时符号找不到
eg:struct sockaddr_in结构体需要开启的宏 - linux PC: -D_GNU_SOURCE - linux rk3308: -D_POSIX_C_SOURCE=200112L -D_DEFAULT_SOURCE 不同工具链编译出的程序运行出错
参考
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |