编译QT
QT的编译总的来说还是比较简单方便的,运行configure就能生成Makefile.下次说一下一些特殊的地方.
Window下的编译:
QT默认是不定义wchar_t类型的, 在VC中编译时, 可修改mkspecs/win32-msvcXXXX目录下的编译配置文件qmake.conf. 为QMAKE_CFLAGS配置项添加或修改-Zc:wchar_t ;否则会出现Qt4中采用了
wchar_t的函数不能够接受没有-Zc:wchar_t选项下的wchar_t类型, 程序连接时会有QString下的一些函数不能连接的问题.
Mac OS X 下的QT发布
在发布应用程序时,可以选择是将QT库发布到系统目录(多个QT应用共享一个库,节约内存),还是应用程序目录(多个QT版本库并存):
Mac OS的应用程序发布(deployment-mac.html):
1) 使用otool查看程序依赖那些库;
拷贝依赖的Frameworks到应用束中,XXX.app/Contents/Frameworks中.
2) 使用install_name_tool改变库的依赖路径
设置库的ID:
install_name_tool -id
newID
old-name-ID
| /__ 应用程序或使用中记录的库ID名称
/__被使用库的新名称ID
改变应用程序及库中记录的动态链接的库ID:
install_name_tool -change
old-name-ID
newId
程序或库名
| | /__ 要修改引用的程序或库
| /_ 在上一步中设定的被使用库的新ID
/_ 应用程序或使用中记录的库ID名称
在ID名中可以使用@executable_path加载器(dyld)的特殊变量来表示程序运行时的路径,如@executable_path/./libname 表示依赖当前目录
对于有插件的应用, 对插件库的操作和上面的类式:
拷贝插件目录到XXX.app/Contents下;
使用install_name_tool改变插件库的路径ID;
使用install_name_tool改变应用程序中记录的插件库的ID.