Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: hippo в Nov 02, 2004, 09:53



Титла: id3tag problem
Публикувано от: hippo в Nov 02, 2004, 09:53
Искам да си направя програма за четенето на таговете от mp3-ките. За целта под ръка ми беше id3tag. Прочетох, че трябва да се включат заглавния файл <id3/tag.h>. Направих ултра-мега проста програма:
#include <id3/tag.h>

int main()
{
  ID3_Tag myTag;

  return 0;
}

Тази ултра-мега проста програма не ще да се компилира. изхода от g++ e

bla bla bla: In function main:
:undefined reference to 'ID3_Tag::ID3_Tag[in-charge](char const*)

Има още един ред, който е същия, но е за деструктора на обекта ID3_Tag. Този output ме навежда на мисълта че ми липсва тялото на конструктора и деструктора. Не съм сигурен за конструктора, но деструктора на класа е virtual.

Бихте ли ми помогнали.


Титла: id3tag problem
Публикувано от: 0xff в Nov 02, 2004, 10:34
Привет,

И аз съм се сблъсквал с тези съобщения. Обикновено причината е някоя сбъркана опция в Makefile или пък в самата g++ команда. Може да бъде сбъркана "g++ -o" с "g++ -c", забравяне да link-неш някой *.o файл в крайната програма или нещо от сорта. Прегледай внимателно командата, с която компилираш. Извикваш ли "pkg-config ... --cflags --libs" с правилните аргументи? Правилно ли е установена $PKG_CONFIG_PATH?
Отговорът е някъде там...
Може би ако постнеш командата, с която се опитваш да компилираш, ще мога да ти помогна повече. Във всеки случай прочети внимателно документацията на библиотеката, относно това как да се компилират програми с нея.

Let the source be with you!


Титла: id3tag problem
Публикувано от: ivak в Nov 04, 2004, 12:01
трябва да линкнеш съответната библиотека към програмата.
обикновено става с опцията "-l<нещо си>" в командния ред на компилатора.
предполагам че въпросното "нещо си" е id3tag.