【xcode】qt程序不通过qmake,运行找不到动态库的坑

现象:试图在一个已有项目里增加qt的代码,因此手动加入相关framework(未通过qmake生成工程),编译连接都通过,但是运行时崩溃,提示错误:

dyld: Library not loaded @rpath  ..... QtCore

总之就是QtCore找不到。

通过研究比较,发现原因在于qt是动态链接的,因此运行时会加载动态链接库,此处需要指定qt动态库的路径。怎样指定呢?在Build Setting中:

Other link flags,加上两行:

-Wl,-rpath,你的qt路径/clang_64/lib

-F你的qt路径/clang_64/lib

编译 搞定,不再崩溃了

时间: 2024-10-06 01:21:39

【xcode】qt程序不通过qmake,运行找不到动态库的坑的相关文章

QT程序拷贝 转移 改变运行环境

qt程序 在windows平台下怎么运行? 以前开发环境是VS2008编译 +qt-win-opensource-4.7.4-vs2008框架 +QtCreator编辑界面(以前的例子,win7下成功安装Qt4.7).         现在需要把程序拷贝到另一台计算机上进行网络测试,不想重新安装VS2008,也不想进行部署qt程序,拷贝dll文件,就想搭配一个简单的qt开发环境或运行环境.于是安装如下简单的环境,进行测试. QT Mingw的安装,Qt for windows安装及设置Qt+Mi

qmake使用实践:包含动态库的Qt4工程

文章来源:http://blog.csdn.net/dbzhang800/article/details/6317006 本文是qmake的一个使用练习,是半年前所学的 分析与学习Qt Solution对qmake的使用 的续篇. 采用一个非常简单的Qt程序作为例子,通过pro文件的合理编写,使得我们的程序在使用动态库的时候,几乎可以忽略掉动态库的存在.它包括3部分: 生成动态库 使用动态库 生成与使用的自动化 测试环境: ubuntu 11.04 + Qt 4.7.2 windows vist

Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载,MySQL官网下载地址:http://www.mysql.com/downloads/installer/ 2.安装时,会提示安装.netFramework4环境,这里提供一个下载链接:http://dldx.csdn.net/fd.PHP?i=537939463366842&s=17682a852

qt(装在VS2010中)如何生成和使用动态库

http://wenku.baidu.com/link?url=iMllGaiHRU6DTQfustCv79_bUxMDPn5ZJBfS3sSRxi5wJj_yA32KGzJsN1n01WKf-2D4T4L1vGCpYlvAZLYUNDi-FD4fZqJ097AA6jW-IcW 1,注意: (1)从动态库中取出.dll..lib.头文件.xxxx_global.h文件 (2)将头文件和xxxx_global.h文件加到新建项目中(即放到项目文件所在的目录下,.vcxproj文件的目录下),.dl

C++ 引用#include<math.h> 找不到动态库

问题: 使用g++ 编译C++文件报错了,无法识别abs,可是我这文件中已经添加了#include<math.h>? 于是在指令中加入-lm g++ main.cpp AStar.cpp -lm -std=c++11 -o astar 可是问题并没有解决,还是同样的问题. 查看usr/lib 下是否有libm.so,发现在/usr/lib/x86_64-linux-gnu路径下,于是拷贝到usr/lib路径下,再次执行,依然没有解决问题. 最后发现是没有引用standard library标准

使用VC2005编译真正的静态Qt程序

首先,你应该该知道什么叫静态引用编译.什么叫动态引用编译.我这里只是简单的提提,具体的可以google一下. 动态引用编译,是指相关的库,以dll的形式引用库.动态编译的Exe程序尺寸比较小,因为相关的库都没有包含进来.当然,程序发布的时候,还要把相关的库也一并发布出去. 静态引用编译,是指把相关的库也一并引入Exe文件.这是程序的尺寸就会很大,不过,程序发布就会变得简单很多. 其次,你可能会注意到我标题上写了“真正”这两个字.为什么我要强调真正这两个字呢?因为使用VC编译的C或者C++程序,都

使用VC2005编译真正的静态Qt程序 good

首先,你应该该知道什么叫静态引用编译.什么叫动态引用编译.我这里只是简单的提提,具体的可以google一下. 动态引用编译,是指相关的库,以dll的形式引用库.动态编译的Exe程序尺寸比较小,因为相关的库都没有包含进来.当然,程序发布的时候,还要把相关的库也一并发布出去. 静态引用编译,是指把相关的库也一并引入Exe文件.这是程序的尺寸就会很大,不过,程序发布就会变得简单很多. 其次,你可能会注意到我标题上写了“真正”这两个字.为什么我要强调真正这两个字呢?因为使用VC编译的C或者C++程序,都

Mach-O文件格式和程序从载入到运行过程

> 之前深入了解过.过去了一年多的时间.如今花些时间好好总结下,毕竟好记性不如烂笔头. 其次另一个目的,对于mach-o文件结构.关于动态载入信息那个数据区中,命令含义没有深刻掰扯清除,希望有同学能够指点下. 摘要:对于mach-o是Mac和iOS能够运行文件的格式.进程就是系统依据该格式将运行文件载入到内存后得到的结果.系统通过解析文件,建立依赖(动态库),初始化运行时环境,才干真正開始运行该App(进程) Start from Hello World 通过分析以下这个最熟悉的可运行文件.来好

转载《Xcode 创建静态库和动态库》

Xcode 创建静态库和动态库 地址链接   http://www.cocoachina.com/ios/20150921/13385.html 1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去