【问题标题】:How to build C++ libraries for use in Qt如何构建用于 Qt 的 C++ 库
【发布时间】:2016-11-18 14:53:08
【问题描述】:

这个问题与我之前发布的这个问题有关:How to include a library in a Qt project

我正在尝试创建一个使用 TagLib 库的 Qt 项目。我不确定该怎么做。

我已经下载了TagLib 1.11.1

我按照this tutorial中的步骤构建它:

构建 zlib,首先让 CMake 创建一个 Visual Studio 解决方案文件,然后使用 Visual Studio 构建此解决方案:

mkdir build && cd build cmake .. -G"Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX="e:\workspace\lib\installed" msbuild /P:Configuration=Debug INSTALL.vcxproj msbuild /P:Configuration=Release INSTALL.vcxproj

以同样的方式构建 TagLib:

cd ....\taglib-1.11.1 mkdir 构建 && cd 构建 cmake .. -G"Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX="e:\workspace\lib\installed" -DZLIB_INCLUDE_DIR="e:\workspace\lib\installed\include" -DZLIB_LIBRARY="e:\workspace\lib \installed\lib\zlib.lib" -DWITH_ASF=on -DWITH_MP4=on -DBUILD_EXAMPLES=on msbuild /P:Configuration=Release INSTALL.vcxproj

这个构建过程似乎不适用于 Qt 项目。

有人可以为我指出如何构建taglib Release 1.11.1 (Windows 10) 的正确方向。

HERE** 这样的东西可能真的很有帮助。我开始使用 C++,而关于构建库的文档确实很有限。对于任何其他试图构建库以在 Qt 上使用的人来说,它可以节省大量时间。

提前谢谢大家。

【问题讨论】:

  • 你成功了吗?
  • 不。仍在努力解决。如果可以的话请帮忙。将不胜感激@Sergey Gatich。
  • 请详细描述问题。你使用什么操作系统、IDE、编译器?您在哪个阶段面临问题?

标签: c++ qt shared-libraries static-libraries taglib


【解决方案1】:

如果你有 TagLib 的来源,你可以在 MS VS 2015 中创建一个解决方案,然后添加一个包含 Qt 项目的子项目和另一个包含 TagLib 的子项目(即 DLL 库)。之后,您可以将 Qt 项目与 TagLib 链接:

  1. 右击Qt项目,选择Properties
  2. 在左侧面板中选择Common PropertiesReferences
  3. 选择Add new reference并添加TagLib项目。
  4. 然后选择C/C++GeneralAdditional Include Directories
  5. 添加您在 Qt 项目中使用的 TagLig 标头的相对路径。

之后,您可以在 Qt 项目中只包含文件名而不包含相对路径。例如:

#include "SomeHeaderFromTagLib.h"

如果你有任何问题,请随时提问,我会更新帖子。

更新 1 您可以使用 Qt Creator 而不是 Visual Studio。社区版可以从 Qt 网站下载。文档如何使用 Qt Creator 配置 CMake:

http://doc.qt.io/qtcreator/creator-project-cmake.html

更新 2 确保您使用的是相应的 Qt 版本。如果您正在处理 MS VS 2015 C++ 编译器,那么您应该使用使用此编译器构建的 Qt 版本,并且仅使用此编译器(msvc2015 版本)。

更新 3 如果您使用的是 Qt MSVC 2013 32 位,那么您应该使用 32 位 TagLib 库。您应该使用以下选项编译它:

cmake .. -G"Visual Studio 12 2013" 

而不是

cmake .. -G"Visual Studio 14 2015 Win64" 

请注意,您的机器上应该有 MS VC 2013 编译器。

编译完 TagLib 后,在 Qt Creator 中打开你的 Qt 项目:

  1. 右键单击它。
  2. 选择Add library...
  3. 选择External
  4. 选择库文件 (.lib)

然后右键单击整个项目并选择Run qmake。 之后,您应该能够构建项目。

【讨论】:

  • Right-click on Qt project, choose Properties -> 这在 Qt 中是不可能的。 Qt 中没有属性,Qt Creator 3.6.0,基于 Qt 5.5.1 (MSVC 2013, 32 bit)
  • 它只涉及 Microsoft Visual Studio。我将添加 UPDATE 3 来解释如何在 Qt Creator 中添加库。
  • @SergeyGatich 我试过这个,但我的程序使用taglib (Qt-Creator) 崩溃了(见stackoverflow.com/questions/41131512/…)。我使用了原生的MinGW-Installation,因为我无法让CMakeQt 中包含的那个一起工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 2015-09-18
相关资源
最近更新 更多