在c ++项目中安装和使用TagLib

时间:2017-08-04 20:26:52

标签: c++ unix installation taglib

除了之前的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(&#34; Latex Solar Beef.mp3&#34;); ^ main.cpp:5:18:错误:预期';'   在'f'TagLib :: FileRef f之前(&#34; Latex Solar Beef.mp3&#34;);                     ^ main.cpp:6:25:错误:'f'未在此范围内声明TagLib :: String artist = f.tag() - &gt; artist(); //艺术家==&#34;弗兰克   扎帕&#34;

当我添加#include <taglib/fileref.h>

它抛出

  

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

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

2 个答案:

答案 0 :(得分:0)

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

-O3

答案 1 :(得分:0)

尝试在您的cmakelist.txt中写

target_link_libraries(your_executable tag)