2010-12-22 5 views
4

DevC++ (MinGW GCC)를 통해 GCC로 일부 C++ WIN32 코드를 컴파일하려했습니다. 그것은 개체를 연결하지 못했습니다 솔기가 나에게 명확한 오류 메시지를주지 않았다 : "[PathToSource]> 오류 1".GCC로 WIN32 코드 컴파일

이클립스 (MinGW GCC)에서 똑같은 것을 시도해보고 컴파일했다. 그러나 아이콘이 응용 프로그램의 아이콘으로 컴파일되도록 설정된 경우 자원의 일부가 표시되는 것은 아니며 리소스 파일에서로드됩니다. 또한 애플리케이션을 실행하면서 백그라운드에서 콘솔 창을 얻습니다.

이 원인은 무엇입니까? 리소스 파일을 코드로 컴파일하고 백그라운드에서 콘솔 창을로드하지 않도록하려면 어떻게해야합니까?

GCC를 통해 Linux에서 WIN32 코드를 컴파일하는 방법이 있는지 또는 동일한 컴파일러에서이 코드를 포팅 할 수 있는지 궁금합니다.

+2

콘솔은 실행 가능 서브 시스템이 GDI가 아닌 CLI로 설정되어 있기 때문에 콘솔입니다. 링커 스위치'--subsystem'을 사용해보십시오. – ruslik

+0

ruslik 코멘트 외에도 체크 아웃 : http://www.cygwin.com/9/3/msg01028.html –

답변

1

리소스 파일 :빌드에서

프로젝트의 단계는 명령과 전체 경로를 입력이 필요하다 자원과 그 출력 파일. 링커 옵션에서 프로젝트의 도구 설정에서

windres ../Resources/resource_file.rc -o ../Debug/resource_file.o 

는 자원 출력 파일의 경로는 자원이 실행 파일에 링크 할 수의 순서를 추가해야합니다.

../Debug/resource_file.o 

는 콘솔 창을 피하십시오 :

링커 플래그는 GUI에 대해 지정해야합니다. 이클립스에서

-mwindows 

:

링커 플래그에서 프로젝트 도구 설정에 깃발을 입력합니다.

2

나는 DevC++ (는 MinGW GCC)를 통해 GCC 일부 C++ WIN32 코드를 컴파일하기 위해 노력했다. 이음새가 개체를 연결하지 못했고 명확한 오류 메시지 "[PathToSource]> 오류 1"이 표시되지 않았습니다.

Windows SDK에 대한 경로가 포함되어 있습니까?

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64

가 적절한 gcc library setting들과 함께 프로그램을 컴파일 (내 컴퓨터에 설치 비주얼 스튜디오를 참고) : 내 컴퓨터에 그것은이다.

이클립스 (MinGW GCC)과 같은 것을 시도해보고 컴파일했습니다. 그러나 아이콘 중 의 아이콘이 응용 프로그램의 아이콘으로 컴파일되도록 설정되어있어 리소스가 모두 표시되지 않는다면 리소스 파일에서 이로드됩니다. 또한 응용 프로그램을 실행할 때 배경에 콘솔 창이 나타납니다.

리소스 설정에서 Eclipse가 Windows 라이브러리를 참조하는 곳을 확인하십시오.

무슨 일입니까? 리소스 파일을 코드로 컴파일하고 백그라운드에서 콘솔 창을 로드하지 않도록하려면 어떻게해야합니까?

Visual Studio에서 응용 프로그램을 개발하십시오. Visual Studio를 구입할 여유가없고 취미 프로그래머라면 Visual Studios Express을 고려하십시오.

GCC를 통해 리눅스에서 WIN32 코드를 컴파일하는 방법 , 또는 같은 컴파일러 포트를 할 수있는 방법이 있다면 나 또한 궁금했다.

당신이 WINAPI를 의미한다면, 내가 아는 한 아니지 않습니다. 호환성을 원하면 표준 C++ 라이브러리를 사용해야합니다.

유용한 찾을 수 있습니다, 그러나, 보편적 인 도서관이 있습니다

  1. http://sourceware.org/pthreads-win32/
  2. http://stdcxx.apache.org/#platforms
  3. http://www.gtk.org/download-windows.html
  4. Cross Platform Lbiraries (Stackoverflow)
+0

첫 번째 팁 주셔서 감사합니다, 나는 그렇게하지 않았습니다. –

4

은 명령 프롬프트에서 컴파일 시도하고 무엇을보고 일어난다.

리소스 파일의 경우 명령 프롬프트에서 이것을 시도하십시오.

windres resource_file.rc -o resource_file.o 마지막으로 코드를 구축 , Eclipse에서 g++ resource_file.o -o app.exe app.cpp

+0

다른 문제에 대해서는 아무 것도 지정하지 않았지만이를 간과했습니다. –