@mr_blaze

Как исправить undefined reference to существующей функции?

Здравствуйте! Сравнительно недавно пишу на c++. Пытаюсь скомпилировать
это
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <RHVoice/core/engine.hpp>
#include <RHVoice/core/document.hpp>
#include <RHVoice/core/client.hpp>
#include <RHVoice/RHVoice.h>
#include <RHVoice/RHVoice_common.h>

using namespace std;
using namespace RHVoice;

int main(int argc, char **argv){
   RHVoice_init_params tts_params;
   RHVoice_tts_engine tts = RHVoice_new_tts_engine(&tts_params);
   cout << RHVoice_get_voices(tts) << endl;
   return 0;
}


Командой
g++ -I/usr/local/include/utf8 -I/usr/local/include/rapidxml -I/usr/local/include/RHVoice -I/usr/local/include  -o main main.cpp

Но при этом вылетает ошибка
/tmp/ccAMF2oc.o: In function `main':
main.cpp:(.text+0x17): undefined reference to `RHVoice_new_tts_engine'
main.cpp:(.text+0x27): undefined reference to `RHVoice_get_voices'
collect2: error: ld returned 1 exit status

Какие флаги нужно прописывать g++ для того, чтобы всё работало?
Заранее благодарю!
  • Вопрос задан
  • 1216 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert

g++ ... -I/usr/local/include/RHVoice ...
main.cpp:(.text+0x17): undefined reference to `RHVoice_new_tts_engine'
main.cpp:(.text+0x27): undefined reference to `RHVoice_get_voices'

Судя по пути до каталога с заголовками нужно добавить что-то такое: -L/usr/local/lib -lRHVoice. Чтобы узнать точно, нужно посмотреть, куда установилась и как называется библиотека (*.a или *.so) RHVoice.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы