2010-07-24 5 views
0

Windows (mingw) 용 Linux에서 Adol-c라는 라이브러리를 크로스 컴파일했습니다. 괜찮을 것 같다,하지만 난 창문에 내 프로젝트에서이 새로운 크로스 - 컴파일 된 라이브러리 (libadolc.a)를 연결하려고 할 때 다음과 같은 문제가 발견 :크로스 컴파일 된 라이브러리를 사용하는 데 문제가 있습니다.


g ++ -LC : \ 1500TB \ libs와 \를 교차 ADOL-C-2.1.0 \ adolc_base \ lib -mwindows -oteste.exe src \ main.o -ladolc -lstdC++ -lm C : \ 1500TB \ libs \ Cross-ADOL-C-2.1.0 \ adolc_base \ lib/libadolc.a (adouble.o) : 함수 ZNSirsERd': /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/istream:219: undefined reference to std :: istream & std :: istream :: _ M_extract (double &) ' C : \ 1500TB \ libs \ Cross-ADOL-C-2.1.0 \ adolc_base \ lib/libadolc.a (adouble.o) : 함수 ZNSolsEd': /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/ostream:214: undefined reference to std :: ostream & std :: ostream :: _ M_insert (double) ' C : \ 1500TB \ libs \ C std :: basic_ostream> & std :: __ ostream_insert> (std :: basic_ostream> &, char const *, int). 내가 올바른 오전 경우) '


, libadolc.a 내 리눅스 디렉토리에 포함을 위해 .. 내가 뭘 잘못했는지 이해가 안 찾고, 어쩌면 뭔가 내가 라이브러리를 컴파일하는 동안? 뭔가 바꿔야 하나? 그것은이 찾고 아니에요 내가 미리 감사

,

답변

0

는 포함하지만, 링커는 표준 라이브러리에서 iostream 기능을 찾고 있습니다. 링커가 C++ 런타임 라이브러리를 찾을 수없는 것처럼 보이지만 명령 줄에서 지정한 것처럼 보이게됩니다. g ++에서 그 라이브러리를 찾은 다음 libstdC++. a/.so는 컴파일러가 다시 시도 할 것으로 기대하는 곳입니다.

이 프로젝트가 처음으로 컴파일되는 경우 환경이 100 % 올바르게 설정되지 않을 가능성이 있습니다.

+0

환경은 괜찮습니다. Windows 용 Eclipse의 mingw를 사용하여 다른 프로그램을 컴파일하는 데 사용합니다. include 경로는 모두 mingw 디렉토리에 설정되지만 그럼에도 불구하고 g ++은 여전히 ​​리눅스에서 라이브러리를 찾으려고합니다 – user401078

관련 문제