我一直在尝试从大学教科书中获取一个简单的列表,以使用我昨晚下载的最新 QT SDK for Windows 进行编译。经过常规的废话(没有make.bat,需要手动添加环境变量等)后,我终于可以构建了。但是这两个库中只有一个似乎可以工作。
我使用的 .pro 文件非常简单:
SUBDIRS += utils \
dataobjects
TEMPLATE = subdirs
在这两个子文件夹中的每一个中,我都有一个库的源代码。运行 QMAKE 会生成一个 makefile 并运行 Make 运行所有的预备程序,然后在 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。我试图弄清楚为什么会发生这种情况,但无济于事。
有人知道发生了什么吗?