国产化 银河麒麟编译Qt程序的问题汇总

  • A+

国产化 银河麒麟编译Qt程序的问题汇总

Run in terminal

莫名奇妙软件无法在QtCreator中运行或者调试,main函数都无法进入,QtCreator中一运行就崩溃,并跳到汇编界面,这多半和代码没什么关系,我这里是将项目->运行中的“Run in terminal”去掉勾选,就可以进入main函数了。

/etc/ld.so.conf.d

如果依赖的库不在运行程序的根目录下,那么需要将依赖库所在路径配置到环境变量中去。一般使用LD_LIBRARY_PATH环境变量。LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。银河麒麟系统内核是linux,所以也可以配置LD_LIBRARY_PATH变量,但是有时候配置发现不生效,命令行中打印LD_LIBRARY_PATH变量显示不出配置的路径,这时可以写个conf文件,里面配置路径,放到/etc/ld.so.conf.d中。

环境变量不生效

一般使用source /etc/profile命令让新配置的环境变量生效,但是银河麒麟中这个命令好像不管用,除了重启机器,还可以使用注销用户的方式让环境变量快速生效。

依赖库问题定位

一般使用“ldd **.so”命令来查看**.so文件所需要依赖的库是否都可以找到,一般会从当前目录和环境变量目录去查找;另外可以使用“ldd -r **.so”命令来执行对函数和对象的重定位并报告丢失的任何函数或对象,如果出现undefined symbol错误,那么就说明依赖库存在问题,需要进行重新编译。

 

Qt大课堂-QtShare

发表评论

您必须登录才能发表评论!