• 10238阅读
  • 2回复

请教 multiple definition of `qMain(int, char**)' [复制链接]

上一主题 下一主题
离线cznc
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-09
问题背景:
开源框架通常会带有几个例子,各自编译互不妨碍;但是Qt编译过程中发现:

以qextserialport-1.2win-alpha.zip为例,解压后得:

/(框架源码)
/examples/enumerator/(应用源码1)
/examples/event/(应用源码2)
/examples/qespta/(应用源码3)
/examples/MySerialPort/(应用源码4)

编译:
qmake -project
qmake
make
提示多个main函数入口;

是否有什么设置或者操作可以达到:make之后应用各自生成自己的可执行文件?(靠移动目录比较麻烦)

虽然算不上技术问题,但是如果有简洁的办法,相信可以提高很多人的效率,善莫大焉。



另外,qmake -project 和qmake之后,自动生成object_script.MyProject.Debug和Makefile.Debug这两个文件里,包含windows相关、posix相关两组文件,编译不过去的(我是mingw32当然无法编译posix相关部分,只好打开前面两个文件手工删掉posix相关的编译项); 有没有办法让自动生成的makefile只包含和编译windows相关的文件?(QT的SPEC=w32-g++设置了的没有问题)

离线cznc
只看该作者 1楼 发表于: 2009-04-09
Re:自问自答吧;假如本贴遇到的问题不够典型,请管理员删除本贴也无妨
问题一:
开源框架通常会带有几个例子,各自编译互不妨碍;
以qextserialport-1.2win-alpha.zip为例,解压后得:

/(框架源码) 这里有.pro文件
/examples/enumerator/(应用源码1)这里有.pro文件
/examples/event/(应用源码2)这里有.pro文件
/examples/qespta/(应用源码3)这里有.pro文件
/examples/MySerialPort/(应用源码4)这里有.pro文件

各自有各自的.pro文件,而不要qmake -project (否则就惨了)
然后各自qmake&&make之即可编译得到各自可执行文件,无需移动目录;


问题二:
通常各自所带的.pro文件中已经进行平台相关性的配置,不会不同平台的一起编译;
假如.pro文件从qmake -project生成,则需要手工修改之,然后才能qmake&&make。
离线wd007

只看该作者 2楼 发表于: 2009-04-09
我的想法目前与你的差不多,赫赫
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个