【问题标题】:Own library using Qt : undefined reference使用 Qt 的自己的库:未定义的引用
【发布时间】:2011-12-04 19:35:26
【问题描述】:

您现在可能从我的多个主题中知道,我将 Qt 4.7.4 嵌入到 ARM 系统上;我只有最后一个问题。 =/

我编写了一个使用 Qt 并使用 qmake 编译的库,以获得 .so 文件;这样可行。然后我写了一个应该使用这个库的软件,并且我用经典的 make 编译。问题是,当我尝试编译这个软件时,我从我的库中得到了很多“未定义的引用”;事实上,所有 Qt 元素都丢失了。我看到没有找到 Qt 库:

/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtGui.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtNetwork.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtCore.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link)

如果 myLib 不知道 Qt 库在哪里,为什么它编译得很好?我可以手动将它添加到我的软 Makefile 中吗?

谢谢!

【问题讨论】:

    标签: qt4 embedded


    【解决方案1】:

    通过命令行编译时,需要添加-L指定libQtGui.so.4等的路径,然后添加-lQtGui -lQtNetwork -lQtCore,这样这些库就可以链接到你的应用了。

    【讨论】:

      【解决方案2】:

      您的 .pro 文件中还有很多内容尚未添加:

      1. 目标
      2. 配置
      3. QT

      检查。

      【讨论】:

        【解决方案3】:

        实际上我只需要添加库的路径,并使用 libQtGui.so.4 建立到 libQtGui 的符号链接;)

        【讨论】:

          猜你喜欢
          • 2014-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-15
          • 1970-01-01
          • 2021-11-30
          • 2014-04-07
          相关资源
          最近更新 更多