2012-07-03 2 views
1

저는 제 C++ 프로그램을 사용하기 위해 제 3 자 라이브러리를 몇 개 준비하는 것과 관련하여 완전히 바퀴를 감고 있습니다. 도서관을 구현할 때 필요한 일반적인 단계에 대한 일반적인 조언 (40,000 피트 수준)을 찾고 있습니다.C + +에서 제 3 자 라이브러리 사용

먼저, 몇 가지 세부 사항 : Windows에서 코드 :: 블록을 IDE로 사용하고 있습니다. 나는이 IDE가 마음에 들지 않으며, (리눅스에서 Visual C++과 몇 가지 것을 시도해 보았습니다.) 필요가 없다면 정말 다른 것으로 전환하고 싶지 않습니다. 내가 사용하려고하는 라이브러리는 GMP와 crypto ++입니다.

확인. What I 나는 이것을 알고있다 : 라이브러리를 다운로드 한 후, 파일을 폴더에 압축을 푼다. 개별 폴더 (예 : c : \ cryptopp 및 c : \ gmp)에 압축을 해제 한 상태에서 C : \에 직접 압축을 해제했습니다. 다음 단계는 도서관을 짓는 것이라고 생각합니다. 그러나 이것이 내가 완전히 붙어있는 곳입니다. 어떻게 이뤄지나요? 추출 된 파일 중 실행 파일이 없습니다. 내가 말할 수있는 것으로부터, 나는 code :: blocks에서 이것을한다고 믿지만 어떻게 될지 모른다.

마지막으로 .lib 파일을 만드는 것으로 생각되면이 코드를 실제로 사용할 수 있다고 가정하면 실제로 라이브러리에서 코드를 사용하기 전에 라이브러리에 링크하는 것입니다. 이 부분은, 나는 이해한다고 믿습니다.

제 질문은 광범위합니다. 전반적으로이 프로세스를 이해할 수 있습니까? 그렇다면 사실 내가 누락 된 것이 사실이라면이 라이브러리를 어떻게 구축해야합니까?

대단히 감사합니다. 나는 지금 완전히 터무니없고 시간과 구글에도 불구하고, 나는 진전이 없다. 또한, 내가 옳지 않은 사실로 언급 한 내용을 자유롭게 수정하십시오. 고마워요!

+0

운이 좋으면이 라이브러리의 폴더 어딘가에 .sln 파일이 있습니다. 이 파일을 code :: blocks (형식을 지원하는 경우)으로 열고 컴파일하십시오. 그렇지 않다면 Google에서 사전 컴파일 된 라이브러리를 찾으려고합니다. –

답변

1

일반적으로 라이브러리에는 makefile이라는 특수 파일이 있으며 Make이라는 유틸리티 (또는 그 중 하나 인 uider windows 작동) 중 하나를 사용하여 빌드됩니다. 일반적으로 소스 파일의 압축을 푼 디렉토리에서 Make를 실행하면 나머지는 자동으로 수행됩니다.

1

(GMP 및 crypto ++, 면책 조항 : 그 중 하나에 익숙하지 않습니다.) code :: blocks에 대한 프로젝트 파일이 없으면 MinGW를 사용하여 Windows에서 컴파일 할 수 있습니다 .

MinGW를 설치 한 경우 MinGW 쉘을 사용하여 예제에 /c/cryptopp//c/gmp이 될 적절한 디렉토리로 이동합니다. - MinGW 쉘은 Unix 쉘처럼 작동하며 다른 이름 지정 규칙이 있습니다.

그런 다음 라이브러리를 컴파일해야합니다. Makefile을 생성 할 configure 스크립트가 있는지 확인할 수없는 경우 해당 디렉토리에 Makefile이 있는지 확인하십시오. Makefile을 가지고 있다면 make을 입력하면 MinGW의 GCC 컴파일러 포트로 라이브러리를 컴파일 할 수 있습니다.

컴파일이 완료되면 프로젝트에 연결할 수있는 .a 파일 (예 : libcryptopp.a) 형식의 라이브러리가 있어야합니다. code :: blocks에서 C:\cryptopp\bin 또는 라이브러리가 컴파일 된 곳의 링커 경로 (GCC에서 -L 명령 행 옵션)를 설정 한 다음 링크하고자하는 라이브러리 목록에 libcryptopp.a을 추가합니다 (-l과 연결됨). GCC의 옵션). 컨벤션은 lib 접두어와 .a 확장자를 생략하기 때문에, 라이브러리 목록에 cryptopp을 추가하면됩니다.결국 링커 옵션은 -LC:\cryptopp\bin -lcryptopp과 함께

과 같이 표시되어야합니다. 또한 라이브러리를 사용하려면 헤더 디렉토리에 대한 경로를 프로젝트의 포함 경로에 추가해야합니다. 이것은 GCC의 -I 명령 행 옵션과 관련이 있으므로 컴파일러의 명령 행 옵션은 -IC:\cryptopp\include 어딘가에 있습니다.

물론 위의 모든 내용은 GCC에서 code :: 블록을 사용한다고 가정합니다. VisualC++에서 사용하는 경우 원리는 동일하지만 특정 단계가 다릅니다.

+0

나는 도서관을 짓는 것이 나 같은 사람들을 미치게 만드는 음모라고 생각하기 시작했습니다. 좋아, 나는 minGW를 설치하고, 그것을 시작하고,/c/cpplibs/gmp /로 이동했다. makefile은 없지만 configure 파일이 있습니다. 그래서 프롬프트에 configure를 입력합니다. 괜찮습니다.하지만 "작동하는 컴파일러를 찾을 수 없습니다. 자세한 내용은 config.log를 참조하십시오."라는 오류 메시지가 나타납니다. 작동하는 컴파일러가 아니라면 minGW는 무엇입니까? 내가 취하는 모든 단계는 마지막 오류보다 더 비밀스런 오류로 이어집니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 매우 좌절했습니다 ... 고마워요. – Alex

관련 문제