2013-04-30 4 views
0

현재 Linux에서 완벽하게 작동하는 쓴 C++ 코드를 크로스 컴파일하려고합니다.mingw32 및 gmp를 사용한 교차 컴파일

나는 mingw32를 설치하고, 그런 일을 사용하여 Windows 라이브러리 (.A)로 libgmp 컴파일 :

./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc 

희망 내가했던 바로

내 프로젝트 incs와 libs와 두 개의 디렉토리를 추가 . incs에서 나는 .H 헤더 (gmpxx.h)를 넣어 libs와에 나는 libgmpxx.a을 넣어

libgmp.a 나는이 메이크 사용하여 컴파일하려고 : I는 경고 부분을 제거

CPP=i586-mingw32msvc-g++ 
CPPSPECS= 
LDFLAGS=-I incs/ libs/ 
EXEC=ceyd++.exe 


all: $(EXEC) 

$(EXEC): base64.o polynome.o chiffre.o dechiffre.o ceyd.o 
    $(CPP) -o [email protected] $^ $(LDFLAGS) 

%.o: %.cpp 
    $(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) 

clean: 
    rm -rf *.o 

mrproper: clean 
    rm -rf $(EXEC) 

을 여기서는 유용하지 않습니다.

내가 만들어 실행, 그것은

아무도 해결책을 가지고 있나요 .... 같은 더 gmpxx.h가 발견되지 하더군요?

CCFLAGS=-Iincs/ 

하고 다음과 같이

$(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) 

변수를 만듭니다

답변

0

귀하의 컴파일 지시어는 그렇지 않은 헤더 디렉토리 'incs'을 가리켜 야 ...이 일에 열심히 노력 컴파일 지시문을 수정하십시오 :

$(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) $(CCFLAGS) 

또한 LDFLAGS 변수는 다음과 같아야합니다 :

LDFLAGS=-Llibs/ -l... 

여기서 ...는 libs /에서 링크하는 공유 라이브러리의 이름을 나타냅니다. 정적 라이브러리 (.a) 만 있으면 연결 지시어에 추가하십시오.

+0

감사합니다. – naingenieu