2011-02-13 3 views
2

우분투 저장소에 tidy-dev를 설치하고 설치 경로를 확인했는데 괜찮습니다 (/ usr/include/tidy).html tidy를 사용하여 C++ 프로그램을 컴파일하는 방법 C++

그러나 당신이 나를 도와 줄 수

http://users.rcn.com/creitzel/tidy/tidyx.h에서 깔끔한 C++ 래퍼 tidyx.h을 포함하여 나는 진정한 내 C를 컴파일 플래그 ++ 스크립트를 찾을 수 없습니다?

내 테스트 스크립트 파일 인 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 처리기 지시문을 사용할 필요가 헤더 파일을 포함합니다. 컴파일러 포함 경로에서 헤더 파일을 찾습니다.

#include <tidy/tidyx.h> 

/usr/include 가능성이 가장 높은 기본이 컴파일러에 대한 경로를 포함하기 때문에 다음 gcc script.cpp로 바로 컴파일 :

tidyx.h/usr/include/tidy에있는 경우 당신은 당신의 소스 파일에 넣을 수 있습니다. 그렇지 않으면 당신은 또한 소스 파일에 넣어 수

:

#include <tidyx.h> 

그리고 /usr/include/tidy에보고 GCC 알려주기 : 헤더가 발견 될이 시점에서 gcc -I/usr/include/tidy script.cpp

. 깔끔함과 관련된 다른 오류 (예 : 깔끔한 기능이 정의되지 않은 경우)를 얻으려면 GCC -l 옵션을 사용하여 바이너리를 라이브러리에 링크해야합니다.


영업 이익의 거대한 편집 후 편집.

당신의 문제는 tidyx.h에 C++ 코드가 포함되어 있으며 소스 파일이 확장 기능을 고려하여 C++ 소스 파일 인 것입니다. 컴파일하려면 C++ 컴파일러가 필요합니다. gcc 대신 g++을 사용하십시오.

g++ script.cpp 
+0

고마워, 알았어. 나는 그 질문을 다시 썼다. – Arturgspb

+0

@ user614999 : 업데이트 내 대답 – peoro

+0

"g ++ -I/usr/include/tidy 1.cpp"을 의미합니까? – Arturgspb

관련 문제