Мне нужно получить доступ к библиотекам OGG с xiph.org.
Я упростил его до следующего.
Это работает: in main.cpp < /p>
Код: Выделить всё
#include "OpusInfoTest.h"
int main (int arggc, char *argv[]) {
OpusInfoTest *o = new OpusInfoTest("sampletest.opus");
delete (o);
return 0;
}
OpusInfoTest::OpusInfoTest (char *qualifiedOpusFile) {
printf ("File %s\n", qualifiedOpusFile);
ogg_sync_state ogsync;
ogg_sync_init(&ogsync);
}
OpusInfoTest::~OpusInfoTest () {
printf ("Gone\n");
}
< /code>
и opusinfotest.h < /p>
#pragma once
#include
#include
#include
#include
#include
#include
class OpusInfoTest {
public:
OpusInfoTest(char *qualifiedOpusFile);
~OpusInfoTest(void);
};
< /code>
Скомпилируется с < /p>
g++ main.cpp OpusInfoTest.cpp -I ../ogg/buildl/include/ogg -I ../ogg/buildl/include -I ../opustools/src -I ../ogg/include/ogg -I ../ogg/include/ -Wno-write-strings -L ../ogg/buildl -l:libogg.a
< /code>
работает нормально. Затем я создал библиотеку. А с < /p>
g++ -c -o OIT.a OpusInfoTest.cpp -I ../ogg/buildl/include/ogg -I ../ogg/buildl/include -I ../opustools/src -I ../ogg/include/ogg -I ../ogg/include/ -Wno-write-strings -L ../ogg/buildl -l:libogg.a
< /code>
, а затем попытался использовать его с main.cpp < /p>
g++ main.cpp -I ../ogg/buildl/include/ogg -I ../ogg/buildl/include -I ../opustools/src -I ../ogg/include/ogg -I ../ogg/include/ -Wno-write-strings -L ../ogg/buildl -l:libogg.a -L . -l:OIT.a
< /code>
возвращает ошибку ссылки < /p>
buildl -l:libogg.a -L . -l:OIT.a
/usr/bin/ld: ./OIT.a: in function `OpusInfoTest::OpusInfoTest(char*)':
OpusInfoTest.cpp:(.text+0x33): undefined reference to `ogg_sync_init'
collect2: error: ld returned 1 exit status
< /code>
Вероятно, упустить что -то простое. Новичок в строительстве библиотек на Linux
Подробнее здесь: https://stackoverflow.com/questions/796 ... references
Мобильная версия