簡體   English   中英

如何在 OS X 上為我的 Qt Creator 項目將 TagLib 1.11.1 設置為 static 庫?

[英]How do I setup TagLib 1.11.1 as a static library for my Qt Creator project on OS X?

我正在 Qt Creator(在 OS X 上)中處理 C++ 項目,我想使用 TagLib。 經過大量的在線研究,我正在努力弄清楚如何才能在我的項目中使用 TagLib 庫。

到目前為止,我有:

  • 下載taglib-1.11.1.tar並解壓縮內容。
  • 下載 CMake 並使用 GUI配置生成這些文件。 (我使用了 CodeBlocks - Unix 選項,因為我發現這是建議的)
  • 從這里我嘗試過: a)將生成的文件作為外部庫添加到我的 Qt Creator 項目中。 但是,這似乎只是在我的 current.pro 文件中添加了 ~ 3 行,引用了 TagLib 文件的路徑。 b)專門為這個庫創建一個新項目...... c)我的頭撞在牆上試圖讓它工作。

對此的任何幫助將不勝感激,謝謝。

編輯:

當我添加外部庫時,以下內容將添加到 my.pro 文件中:

win32:CONFIG(release, debug|release): LIBS += -     L$$PWD/../../../Libraries/taglib-1.11.1/taglib/release/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/debug/ -ltag
else:mac: LIBS += -F$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -framework tag
else:unix: LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag

INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib

然后我運行 qmake,項目構建並運行良好。 但是,如果我嘗試執行類似#include <tag.h>的操作,則會收到錯誤消息。 對於這個例子,它說'tstring.h' file not found #include "tstring.h" 然后,當我刪除錯誤行時,它會在我運行它時給出不同的錯誤framework not found tag linker command failed with exit code 1 (use -v to see invocation)

編輯:

代碼 in.pro 更改為:

#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/release/ -ltag
#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/debug/ -ltag
LIBS += -F$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag
#else:unix: LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag

INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib

現在我得到了library not found for -ltag

這是../Libraries/taglib-1.11.1下文件的圖像以及我在 CMake鏈接中使用的選項。

編輯:

我使用以下內容安裝在其中:

  cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
  make
  sudo make install

現在庫中的文件目錄如下所示。 然后我在Qt中重新添加了外部目錄。 所以現在 my.pro 文件包含:

LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag

INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib
DEPENDPATH += $$PWD/../../../Libraries/taglib-1.11.1/taglib

PRE_TARGETDEPS += $$PWD/../../../Libraries/taglib-1.11.1/taglib/libtag.a

現在它運行良好,除非我嘗試執行#include <tag.h>之類的操作並且它給出錯誤'tstring.h' file not found

如果只構建taglib而不安裝它。

你應該有以下幾點:

INCLUDEPATH += \
    /path/to/taglib_source/taglib \
    /path/to/taglib_source/taglib/toolkit \
    /path/to/taglib_builddir/

LIBS += \
    -L/path/to/taglib_builddir/taglib \
    -ltag

如果您使用默認值安裝了taglib:

INCLUDEPATH += \
    /usr/local/include/taglib

LIBS += \
    -L/usr/local/lib \
    -ltag

使用 Cmake 執行此操作:

CMakeLists.txt

add_subdirectory ("[path]/taglib")
add_library(taglib STATIC) # use SHARED for dynamic linking

[大量代碼...] [在add_executable(...)之后]

target_link_libraries(${PROJECT_NAME} PRIVATE
    [optionally other libs]
    # id3 tags
    taglib
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM