Qt程序,总会遇到各种使人凌乱的问题,于是决定开始记录...
一、程序移植问题
1、用vs2010交叉编译的Qt4.7.4程序,在移植到x86的裸机上时,需要添加..\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\目录下的msvcp100.dll和msvcr100.dll。
2、使用phonon编写程序发布时,除了phonon4.dll外,还要将..\plugins\目录下的phonon_backend文件夹拷贝到项目中,如果目标机为x86, 则需要phonon_backend\phonon_ds94.dll即可。
否则会出现以下警告,程序没有声音:
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName
) to Phonon::AudioOutput ( no objectName ).
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
WARNING: bool __thiscall Phonon::FactoryPrivate::createBackend(void) phonon back
end plugin could not be loaded
3、设置应用程序图标
首先准备个ICO图标。例如:myappico.ico,用记事本新建个文件里面就写一行:
IDI_ICON1 ICON DISCARDABLE "myappico.ico"
保存改名为 myapp.rc并把它和你的图标myappico.ico一起复制到你的QT工程项目的目录。 用记事本打开你的QT工程文件(如 "myapp.pro" ),在里面最后新添一行
RC_FILE = myapp.rc
保存,编译你的工程,OK.
4、Qt debug 和release 版本导入不同的库(opencv2.4.6)
INCLUDEPATH += C:/OpenCV2.4.6/opencv/build/include
CONFIG(debug, debug|release) {
#debug
LIBS += -LC:/OpenCV2.4.6/opencv/build/x86/vc10/lib/ \
-lopencv_core246d \
-lopencv_contrib246d \
-lopencv_calib3d246d \
-lopencv_flann246d \
-lopencv_features2d246d \
-lopencv_highgui246d \
-lopencv_imgproc246d \
-lopencv_nonfree246d
} else {
#release
LIBS += -LC:/OpenCV2.4.6/opencv/build/x86/vc10/lib/ \
-lopencv_core246 \
-lopencv_contrib246 \
-lopencv_calib3d246 \
-lopencv_flann246 \
-lopencv_features2d246 \
-lopencv_highgui246 \
-lopencv_imgproc246 \
-lopencv_nonfree246
}
5、Qt 5.1.0 msvc2010_opengl 移植到其它电脑上打不开,将plugins/下的platforms文件夹拷贝到项目中,可删除platform下*d.dll。截图:
6、Ubuntu 下安装Qt后出现Permission denied,使用如下命令获取root权限:
sudo chown -R zdd:zdd ~/.config/
7、将Qt写的含有boost1.55.0和opencv2.4.8的项目移植到mac os x 10.9时,出现
symbol(s) not found for architecture x86_64
linker command failed with exit code 1