【问题标题】:Installation and usage of TagLib in c++ projectc++项目中TagLib的安装和使用
【发布时间】:2023-03-12 12:00:02
【问题描述】:

除了我之前的Q

我尝试了无数sources,以便找到正确的方法来安装 c++ 的 taglib 库并在我的项目中使用它。

我包括路径

#include <taglib/tag.h> 

我试过只包含

  #include <taglib>

但即使 /usr/include/taglib 存在,它也不起作用。

我正在使用

编译我的项目
g++ -Wall -pedantic -std=c++11 -ltaglib main.cpp -I taglib-1.11.1/toolkit

还有来自网站的演示

    TagLib::FileRef f("Latex Solar Beef.mp3");
TagLib::String artist = f.tag()->artist(); // artist == "Frank Zappa"

抛出

错误:“FileRef”不是“TagLib”TagLib::FileRef 的成员 f("乳胶太阳能牛肉.mp3"); ^ main.cpp:5:18: 错误:预期的';' 在‘f’之前 TagLib::FileRef f("Latex Solar Beef.mp3"); ^ main.cpp:6:25: 错误:'f' 未在此范围内声明 TagLib::String artist = f.tag()->artist(); // 艺术家 == "弗兰克 扎帕”

当我添加#include &lt;taglib/fileref.h&gt;

它抛出

main.cpp:(.text.startup+0x48): 未定义的引用 TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle)' main.cpp:(.text.startup+0x50): undefined reference toTagLib::FileRef::tag() const' main.cpp:(.text.startup+0x68): 未定义的引用 TagLib::String::~String()' main.cpp:(.text.startup+0x70): undefined reference toTagLib::FileRef::~FileRef()' main.cpp:(.text.startup+0x83): 未定义的引用 `TagLib::FileRef::~FileRef()' collect2:错误:ld 返回 1 退出 状态

安装和使用TagLib的正确方法是什么?

【问题讨论】:

  • 这是整个错误输出
  • 我不知道这里出了什么问题,但是如果你拆分声明,它仍然会抱怨.. TagLib::FileRef f = TagLib::FileRef("Latex Solar Beef.mp3");
  • @hoodaticus 是的,它仍然在抱怨

标签: c++ unix installation taglib


【解决方案1】:

通过添加此选项尝试在发布模式下编译:

-O3

【讨论】:

  • g++ -Wall -pedantic -std=c++11 -03 -ltaglib main.cpp -I taglib-1.11.1/toolkit ?也可以工作...“无法识别的命令-03”
  • @trolkura "capital O" ,不为零
  • 也许可以尝试将其移植到 Visual Studio 中看看会发生什么。可能是编译器出了问题。
【解决方案2】:

试着写在你的 cmakelist.txt

target_link_libraries(your_executable tag)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多