2017-01-03 5 views
0

이전 Borland C/C++ 98 프로그램을 리팩토링하고 있습니다. 나는 리눅스 플랫폼에서 프로그램을 작성하고 싶지만 시작 부분에는 보드 추가판이 있기 때문에 프로그램을 지우고 모든 GUI OWL을 제거하고 win7 및 mingw64에서 현대 gcc/g ++를 사용하여 테스트를 수행합니다.g ++ with mingw64 : Moxa PComm.lib : 파일 형식이 인식되지 않습니다.

실제로 C320 터보 뜸쑥 멀티 포트 직렬 보드를 사용하는 샘플 코드를 연결하려고합니다. http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use 에 언급 된대로 .lib 및 .dll을 연결해야합니다.

그래서 나는 sio_open에 대한 뜸 PComm.lib 내 샘플을 연결, sio_read, sio_write ... 기능

g++ -m32 -Wall -std=c++14 src/main.cpp src/rs232_c320t.cpp … -L./lib -lPComm 

등의 노력 및 링크 창을 허용 할 수있는 옵션이 있습니다 그것은

./lib/PComm.lib: file not recognized: File format not recognized 

을 반환 .lib gcc/g ++ with mingw64?

감사

이 관련 "Linking *.lib files with MinGW"질문은 오류 "파일 형식을 인식하지"언급하지 않습니다. 아래 내 의견을 참조하십시오.

bcag2

+0

[MinGW와 링크 된 \ *. lib 파일] 가능한 복제본 (http://stackoverflow.com/questions/7241047/linking-lib-files-with-mingw) 아, 그리고 정말로 오래된 .lib 인 경우 볼랜드 컴파일러가 90 년대에 만들었던 것, 컴파일러 이외의 다른 컴파일러와 호환되지 않을 수도 있습니다. – Swift

+0

lib 파일의 이름을 바꾸지 않고 시도했습니다 ... 사실 g ++은 파일을 읽었지만 작동하지 않습니다. – bcag2

+0

나는 "잘못된 또는 잘못된 가져 오기 라이브러리"를 반환하는 Lib2a를 시도했습니다. Moxa의 PComm Lite의 마지막 버전은 2012-05에 출시되었으므로 Borland와 관련이 없다고 생각합니다. Borland와 처음 쓴 글은 내 프로그램이지만 문제는 아닙니다! – bcag2

답변

0

나는 PCommLite for win7 x64 마지막 다운로드.

내 프로젝트 폴더 (내 경우에는 lib)에 C:\Program Files\Moxa\PCommLite 1.6\Include\PCOMM.H을 복사하고 PCOMM.dllPCOMM.libC:\Program Files\Moxa\PCommLite 1.6\Lib\x64에 동일하게 복사하십시오.

g++ -c -std=c++14 -D_hypot=hypot -DWIN32 src/*.cpp -I./lib/ 

경우 -I./libPCOMM.H에 대한 액세스 및 링크 제공 : 물론

g++ -shared *.o lib/PCOMM.LIB /c/Windows/System32/msvcr120.dll /c/ProgramData/Anaconda3/python36.dll -o _project.pyd 

한 번에 모든 작업을 수행 할 수 있습니다를 만들 .exe :

은 그럼 컴파일

g++ -o project.exe -Wall -std=c++14 -DWIN32 src/*.cpp -Ilib/ lib/PCOMM.LIB -L./lib/ 

아니오Moxa 지원에서 제안한대로이 필요합니다!