我一直在尝试从大学教科书中获得一个死锁的简单列表,以便用我昨晚下载的最新的Windows版QT SDK进行编译。在通过常规的废话(没有make.bat,需要手动添加环境变量等等)之后,我终于到了可以构建的地步。但是这两个图书馆中只有一个似乎有效。QT4的基本编译问题
的.pro文件我用的是死的简单:
SUBDIRS += utils \
dataobjects
TEMPLATE = subdirs
在这些两个子文件夹我有一个库源。运行QMAKE生成生成文件并运行在所有的预赛做运行,然后在G ++调用失败:
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc --out-implib,libdataobjects.a -shared -mthreads -Wl -Wl,--out-implib,c:\Users\Cobus\workspace\lib\libdataobjects.a -o ..\..\lib\dataobjects.dll object_script.dataobjects.Debug -L"c:\Users\Cobus\Portab~1\Qt\2010.02.1\qt\lib" -LC:\Users\Cobus\workspace\lib -lutils -lQtXmld4 -lQtGuid4 -lQtCored4
c:/users/cobus/portab~1/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lutils
这个问题似乎是对附近的命令行,其中-lutils添加结束,这表明有一个名为utils的图书馆。虽然我期望看到这一点,但是在--out名称中包含lib之后,您会注意到库名,因此它们将成为libutils和libdataobjects。我试图弄清楚为什么会发生这种情况,但没有用。
任何人都有一个想法是怎么回事?
在GCC中,为libname使用-lname并省略“lib”部分是标准的 – 2010-05-07 05:33:10
如果您自动生成Makefile,那么如果只删除-lutils部分会发生什么? (通过编辑生成文件) – 2010-05-07 05:34:14
您的.pro文件只是说有两个子目录utils和数据对象,它们每个都包含自己的.pro文件以及有关如何构建其内容的信息。您还应该提供这些.pro文件以获得有意义的答案。 – VestniK 2010-05-07 07:44:36