2012-02-11 2 views
20

MingGW에서 IDE로 Codeblocks를 사용하고 있습니다. Google 프로토콜 버퍼 인 을 사용하려고하는데 protobuf를 만드는 데 문제가 있습니다.MinGW를 사용하여 Windows에서 Google의 protobuf를 빌드하는 방법은 무엇입니까?

protobuf에 대한 추가 정보 파일은 말한다 :

If you are using Cygwin or MinGW, follow the Unix installation instructions, above.

유닉스 명령어는 말한다 : "구성은"유닉스 스크립트이기 때문에 윈도우 에서 다음을 수행하는 방법을 모르는

To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc) execute the following: $ ./configure $ make $ make check $ make install

그리고 나는 그것을 실행하는 방법이나 나머지 명령을 모른다.

누군가가 어떻게 더 자세하게 설명 할 수 있습니까? Windows에서 MinGW를 사용하여 protobuf를 빌드 할 수 있습니까?

답변

25

여기에 나를 위해 일한 내용은 다음과 같습니다

  1. 당신이와 Mingw와 MSYS를 설치해야합니다. 이것은 대부분의 유닉스 패키지를 구성/만들 수있는 최소한의 유닉스 계열 쉘 환경이다. mingw 문서를 읽는 방법을 mingw-get 또는 GUI 설치 프로그램에서 읽으십시오.

  2. MSYS를 설치했으면 "MinGW Shell"이라는 시작 메뉴에 바로 가기가 있어야합니다. bash가있는 콘솔이 열립니다.

  3. MSYS 홈 디렉토리에 소스 타볼을 추출하십시오. "D : \ prog"에 mingw를 설치 했으므로 디렉토리는 "D : \ prog \ MinGW \ msys \ 1.0 \ home \ < 사용자 이름 >"입니다. 쉘 프롬프트에서 MSYS 사용자 이름을 알 수 있습니다. 완료되면 "D : \ prog \ MinGW \ msys \ 1.0 \ home \ < 사용자 이름 > \ protobuf-2.4.1"디렉토리가 있어야합니다. 쉘 프롬프트에서

  4. 는 protobuf 디렉토리로 변경 :

    cd protobuf-2.4.1

  5. 실행 구성 스크립트합니다 (역 인용 부호에주의를)

    ./configure --prefix=`cd /mingw; pwd -W`

    --prefix paramater을 확인합니다 protobuf는 MSYS 디렉토리 대신 mingw 디렉토리 트리에 설치되므로 MSYS 쉘 외부에서 빌드 할 수 있습니다 (예 : wit 시간 CodeBlocks ...)

  6. 실행합니다 make

  7. 설치 : 그것 뿐이다

    make install

  8. . 이제 protobuf로 프로젝트를 컴파일 할 수 있습니다.등 프로젝트/메이크

  9. #include <google/protobuf/message.h>
  10. HTH
  11. 링크 -lprotobuf 또는 -lprotobuf-lite


피터

에서

  • 전화 protoc :
    당신은 할 수 있어야한다

    편집 : 조금 더 최신 상태로 만듭니다. 저는는 MinGW와 protobuf 2.5.0의 최신 버전으로 새 PC를 설정했는데, 이들은 내가 가진 문제입니다

    1. 는 시작 메뉴에는 "는 MinGW 쉘"바로 가기가 없습니다.
      현재 MinGW 설치가 어떤 이유로 설치되지 않습니다.
      <Mingw home>\msys\1.0에는 msys.bat이 있으며 배시가있는 콘솔이 나타납니다. 해당 배치 파일에 대한 어딘가에 바로 가기를 만듭니다.

    2. gcc가 MSYS 셸에서 작동하지 않습니다.
      설치 후 배치 파일을 수동으로 실행하고 질문에 대답해야했습니다. MSYS 환경에서 mingw 디렉토리를 마운트하는 fstab 항목을 설정합니다.
      실행해야합니다 <Mingw home>\msys\1.0\postinstall\pi.bat

    3. 내 Avira 바이러스 백신이 protobuf 컴파일을 방해했습니다.
      "TR/Crypt.XPACK.Gen"트로이 생성 된 protoc.exe에 대해 불만을 제기하고 해당 파일에 대한 액세스를 차단하여 손상된 빌드가 발생했습니다.
      protoc를 시작할 때 protoc:./.libs/lt-protoc.c:233: FATAL: couldn't find protoc.과 같은 오류 메시지가 표시됩니다.
      는 내가 AVIRA 실시간 스캐너와 make clean && make && make install을 해제했다 다시

    편집 # 2 :

    이 포스팅은 꽤 세 있으며,와 Mingw 더 이상 동일한와 Mingw를하지 않습니다. ArchLinux의 팩맨 패키지 관리자 인 Portfolio Manager와 함께 제공되는 MSYS2를 권장합니다. 32 비트와 64 비트 모두를위한 최신의 더 나은 작업 (C++ 11 std :: thread 지원!) mingw 포크, 그리고 설치하고 좋은 상태로 유지해야하는 protobuf 패키지가 필요합니다.

    Go here 다운로드하십시오!

    희망이 도움이됩니다.
    피터

+0

고맙습니다. 대답 : 나는 그것을 시도해 보겠다. – Alex

+0

알았어, 해냈어. 그걸로 일 했어. 너무 고맙습니다. – Alex

+0

@Peter : 나와있는 단계를 따라했습니다. './configure'명령을 실행하면 다음 오류가 발생합니다. C++ 전 처리기를 실행하는 방법을 확인하는 중 .../lib/cpp configure : error : C++ 전처리 기/lib/cpp가 정상 검사에 실패했습니다. '결과 , make, make install 명령이 작동하지 않습니다. 예를 들면 : make : *** 지정된 타겟이없고 메이크 파일이 없습니다. 중지. –

0

나는 동일한 문제가 있었고 나는 boost 빌드를 사용하여 프로토콜 버퍼를 작성하여 해결했다. 잘 작동 했으므로 프로토콜 버퍼에 jamfile을 제공 할 수 있습니다.

내가 여전히 문제가있는 것은 boost 빌드를 확장하여 proto 파일에서 cpp 소스 파일을 생성하지만 다른 이야기입니다.

+2

protobuf 소스 배포판 (3.0.0-beta2)의 현재 버전에는 ./configure 스크립트가 없으며'autoconf'는 실패합니다; 업데이트 된 답변의 기회? –

1

필자의 경우 Peter의 대답이 완전히 작동하지 않아 최신 MinGW 4.8을 사용했습니다.1 + MSys 분포 (두 MSYS 패키지를 모두 mingw-get에 선택).

제 문제는 접두어가 실제로 작동하지 않아서 파일을 찾을 수있는 곳이 C:\MinGW\msys\1.0\local 인 것입니다. 그러나, bin/include/libs 폴더를 c:\mingw,으로 복사 한 후에 설치가 저에게 효과적이었습니다.

관련 문제