문제

Cygwin을 통해 컴파일 명령을 통해 Windows에서 내 프로그램을 불만 받으려고합니다.

g++ ping.cpp -I./include -L./lib -lchartdir50

차트를 그려 차트를 그려 차트 디렉터라는 API를 사용하고 있습니다. 나는 이전에 이런 식으로 라이브러리를 링크 한 적이 없다 (보통 비주얼 스튜디오를 통해한다). 정말 큰 오류 목록이 있으므로 모두 나열하지는 않지만 링커 오류 유형을 명확히하기 위해 하나를 나열 할 것입니다.

(.text$_ZN9BaseChartD1Ev[BaseChart::~BaseChart()]+0x4f): undefined reference to '_CBaseChart_destroy'

이 모든 것은 'XXX'오류에 대한 정의되지 않은 참조입니다.

./include에 헤더 파일이 많이 있고 ChartDir50.lib in ./lib라는 라이브러리가 있습니다.

내 컴파일 라인에 무슨 문제가 있습니까?

도움이 되었습니까?

해결책 3

흠 ... 이상해. 64 비트 시스템을 사용하고 있지만 어떤 이유로 32 비트 라이브러리에서 시도해 보았습니다. 감사!

다른 팁

나는 확실하지 않지만 .lib Visual C ++로 컴파일 되었습니까?

그렇다면 GCC와 호환되지 않는다고 생각하지 않으므로 GCC/G ++로 라이브러리를 컴파일하고 해당 파일을 사용하거나 소스에 액세스 할 수없는 경우 호환 바이너리를 사용해야합니다.

나는 전에 그 라이브러리를 사용하지 않았지만 Googled 그것은 다른 사람들이 좋아한다는 것을 알았습니다 -lchartdir 대신에 -lchartdir50, 당신은 그것을 시도해야합니다.

LIB가 GCC로 만들어 졌다고 가정합니다.

Afaik .lib는 정적 라이브러리이므로 -L 컴파일러 스위치를 가리킬 필요가 없습니다.

명령 줄의 다른 파일로 사용하십시오.

g ++ ping.cpp -i./include -l./lib {lib 로의 경로} /chartdir50.lib

HTH.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top