解决Qt SDK编译affine示例时的error: cannot find -ldemo_shared问题

5星 · 超过95%的资源 需积分: 50 55 下载量 134 浏览量 更新于2024-09-15 收藏 691B TXT 举报
当在Windows 7环境下使用Qt 4.8.2 SDK进行affine等demo的编译时,可能会遇到`error: cannot find -ldemo_shared`这样的错误。这个错误通常发生在链接阶段,意味着编译器无法找到名为`demo_shared`的共享库。以下是一些解决此问题的步骤: 1. 首先,问题在于`arthurwidgets.cpp`文件中的`#include <private/qpixmapdata_p.h>`行。这个头文件可能包含了一些动态链接的依赖,而在你的环境中,你正在使用静态编译的Qt版本(如e:\qt\4.8.2\qmake\qmake.exe,对应于Qt 4.8.0的Static Release)。因此,为了能够编译,你需要临时注释掉这一行,以避免编译过程中的冲突。 2. 接下来,在Qt 4.8.2的Command Prompt环境中(E:\QtSDK\Demos\4.7\shared路径下),执行`qmake -config release`命令。这将配置你的项目为release模式,并创建一个静态库`libdemo_shared.a`。`ar: creating release\libdemo_shared.a`这条消息表明编译过程已经成功创建了静态库。 3. 然后,当你在Qt Creator中打开并尝试编译affine.pro项目时,由于之前的步骤,你需要确保使用与E:\QtSDK\Demos\4.7\shared中相同的qmake工具进行编译,因为这可以保证正确地处理库的链接。如果不这样做,可能会导致链接错误。 按照这些步骤操作后,你应该能够解决`error: cannot find -ldemo_shared`的问题,顺利编译和运行affine demo。然而,长期来看,为了避免此类问题,建议检查你的Qt环境设置,确保所有依赖项都正确配置为静态或动态链接,并且Qt版本与SDK中其他组件兼容。如果需要动态链接,可能需要重新编译Qt库或者调整项目的构建配置。