我正在帮助开发一个c++应用程序。应用程序非常大,并且分布在不同的子目录中。它使用脚本为每个项目目录自动生成qt .pro文件,然后使用qmake生成make文件。目前,这些库正在按字母顺序进行编译。当它试图链接的库尚未构建时,这显然会导致链接错误。是否有某种类型的g++标志我可以设置,这样它就不会在试图链接的库还没有构建时出错?或者让它首先通过qt .pro文件构建依赖关系?
注意:这个脚本在ubuntu10.10上运行得很好,因为构建共享库的语句并不要求我使用-l(库名称)来链接到我的其他库,但是ubuntu11.10做到了,所以当我在11.10上编译时,它给了我未定义的引用错误。
发布于 2012-02-12 02:21:02
您可以使用子目录项目来控制构建顺序(无论其他开发人员是否需要它:)。
例如。
build_all.pro
TEMPLATE=subdirs
CONFIG+=ordered
SUBDIRS=lib2/lib2.pro lib1/lib1.pro app/app.prolib1.pro,lib2.pro,...是你生成的pro文件。然后对build_all.pro运行一次qmake,并在该目录中运行make。这将在lib1之前构建lib2,然后构建app。
https://stackoverflow.com/questions/9236632
复制相似问题