Festival
コードの選択部分(C++で書かれている)を使い、自分のC++
プログラムで使用しようとしています。この質問は、Festival APIの使用についてではなく、直接使用できるFestival
の機能についてです。スタンドアロンC++プログラムでC++で書かれたフェスティバルコードの一部をコンパイル
私が書いたプログラムがC++
スタイルstring
に取り、タイプEST_String
(祭でStringクラスの内部実装)のオブジェクトを初期化しようとします。私はその後、オブジェクトを印刷しようとします。
私が持っているコード:
/*EST_String is a string implementation for the festival project.
* This program simply takes in a C++-style string and returns an EST_String.
* This program is being used to test for makefiles etc.
*/
#include <iostream>
#include <EST_String.h>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[]) {
if(argc != 2) {
cout << "Correct usage: <binary> <string>" << endl;
exit(5);
}
string word(argv[1]);
EST_String e(word.c_str()); //init EST_String.
cout << "C++ String = " << word << endl;
cout << "EST_String = ";
cout << e;
return 0;
}
に私はそうのように(直接コマンドライン現時点では(ノーメイクファイル)から)それをコンパイルしようとしています:
g++ -I../../speech_tools/include -I../../speech_tools/base_class/string -L../../speech_tools/lib/ -lestbase -lncurses -lasound -leststring -lestools usingESTString.C -o usingESTString
私が手にエラーがあります:
/tmp/cczyGTfm.o: In function `main':
usingESTString.C:(.text+0x91): undefined reference to `EST_String::EST_String(char const*)'
/tmp/cczyGTfm.o: In function `EST_Chunk::operator--()':
usingESTString.C:(.text._ZN9EST_ChunkmmEv[EST_Chunk::operator--()]+0x3e): undefined reference to `EST_Chunk::~EST_Chunk()'
usingESTString.C:(.text._ZN9EST_ChunkmmEv[EST_Chunk::operator--()]+0x49): undefined reference to `EST_Chunk::operator delete(void*)'
collect2: ld returned 1 exit status
コードを正しくコンパイルするにはどうすればよいですか?どこが間違っていますか?
最後にリンクしたライブラリをコマンドラインで、特にソースファイルの後ろに置いてみてください。 –
@ジョアヒム:そうです。それが問題でした。なぜあなたは答えにあなたのコメントをしていないと私はそれを正しいとして受け入れるだろう。小さな説明も素晴らしいでしょう。ありがとう! – Sriram