2011-02-13 9 views
2

私はubuntuリポジトリからtidy-devをインストールし、インストールパスを確認しました。これは大丈夫です(/ usr/include/tidy)。html tidyを使ってC++プログラムをコンパイルする方法C++

しかし、私は私のC++のスクリプトをコンパイルする真のフラグがhttp://users.rcn.com/creitzel/tidy/tidyx.h

からきちんとしたC++ラッパーtidyx.hを見つけることができないあなたは私を助けることができますか?

私の近くに置いた1.cpp、tidyx.hという名前のテストスクリプトファイル。 1.cpp内容:

#include "tidyx.h" 

int main() 
{ 
} 

私はそれを試してみてください、ない-良い:

$ gcc -I/usr/include/tidy 1.cpp -ltidy 

In file included from 1.cpp:1: 
tidyx.h: In constructor ‘Tidy::Source::Source()’: 
tidyx.h:83: error: invalid conversion from ‘int (*)(ulong)’ to ‘int (*)(void*)’ 
tidyx.h:84: error: invalid conversion from ‘void (*)(ulong, byte)’ to ‘void (*)(void*, byte)’ 
tidyx.h:85: error: invalid conversion from ‘Bool (*)(ulong)’ to ‘Bool (*)(void*)’ 
tidyx.h:86: error: invalid conversion from ‘ulong’ to ‘void*’ 
tidyx.h: In constructor ‘Tidy::Sink::Sink()’: 
tidyx.h:123: error: invalid conversion from ‘void (*)(ulong, byte)’ to ‘void (*)(void*, byte)’ 
tidyx.h:124: error: invalid conversion from ‘ulong’ to ‘void*’ 
tidyx.h: In member function ‘void Tidy::Buffer::Attach(void*, uint)’: 
tidyx.h:165: error: invalid conversion from ‘void*’ to ‘byte*’ 
tidyx.h:165: error: initializing argument 2 of ‘void tidyBufAttach(TidyBuffer*, byte*, uint)’ 
tidyx.h: In member function ‘int Tidy::Document::Create()’: 
tidyx.h:496: error: invalid conversion from ‘ulong’ to ‘void*’ 
tidyx.h:496: error: initializing argument 2 of ‘void tidySetAppData(const _TidyDoc*, void*)’ 
tidyx.h: In member function ‘void Tidy::Document::SetAppData(ulong)’: 
tidyx.h:511: error: invalid conversion from ‘ulong’ to ‘void*’ 
tidyx.h:511: error: initializing argument 2 of ‘void tidySetAppData(const _TidyDoc*, void*)’ 
tidyx.h: In member function ‘ulong Tidy::Document::GetAppData()’: 
tidyx.h:512: error: invalid conversion from ‘void*’ to ‘ulong’ 
+0

エラーメッセージは何ですか?暗闇の中でのショットは、きちんとした図書館(あなたはその見出しだけを含む)とリンクするのを忘れたことでしょうか? –

答えて

1

あなたは#includeプリプロセッサディレクティブを使用する必要があるヘッダファイルをインクルードするには。コンパイラインクルードパスのヘッダファイルを探します。

tidyx.h/usr/include/tidyである場合は、ソースファイルに置くことができる:/usr/includeが最も可能性の高いデフォルトであることから、

#include <tidy/tidyx.h> 

をし、その後gcc script.cppでちょうどコンパイルコンパイラのパスが含まれています。そうでなければ、あなたも自分のソース・ファイルに入れることができ

#include <tidyx.h> 

そして/usr/include/tidyに見えるようにGCCを伝える:ヘッダが発見されるこの時点でgcc -I/usr/include/tidy script.cpp

。 Tidyに関連する他のエラー(例えば、整頓された関数が定義されていないなど)がある場合は、GCC -lオプションを使用してバイナリをライブラリにリンクする必要があります。


OPの巨大な編集後のEDIT

ここでの問題は、tidyx.hにC++コードが含まれていることです。また、その拡張子を調べるソースファイルはC++ソースファイルのようです。コンパイルするにはC++コンパイラが必要です。 g++代わりのgccを使用します。

g++ script.cpp 
+0

ありがとう、私はそれを知っていた。私はその質問を書き換えた。 – Arturgspb

+0

@ user614999:更新私の答え – peoro

+0

あなたは "g ++ -I/usr/include/tidy 1.cpp"を意味しますか? – Arturgspb

関連する問題