Makefile 에 원하는 옵션을 추가하고 싶어요.. 어떻게 해야 하죠?
64bit 우분투 유저입니다.
32bit 에서 만든 파일을 돌려야 해서 g++ 컴파일을 아래와 같이 작성했습니다.
g++ -o Openmap -m32 -Xlinker --start-group Graphics.cpp Hymap.cpp HyView.cpp OpenMap.cpp HyBase.cpp HYSub.cpp -lm -Xlinker --end-group
설명:
-m32 : 32bit 로 컴파일하겠다는 의미
-Xlinker ~~~~~ -Xlinker : 오브젝트 파일을 뒤로 넘기겠다는 의미(?) ㅠ 잘은 모르겠어요..
--start-group ~~~~ --end-group : 사실 이것도 잘 모르겠습니다..
어떻게 어떻게 해서 이제 컴파일이 됩니다.
그런데 문제는 makefile 을 못만들겠습니다 ㅠ
아래는 제가 직접 만든 makefile 입니다... (CXXFLAGS 가 c++ 컴파일할때 쓰는 옵션 맞나요? ㅠㅠ)
LIBDIR = -L/usr/X11R6/lib
CXX = g++
CXXFLAGS = $(COMPILERFLAGS)
LIBRARIES = -m32 -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm
OpenMap : OpenMap.o
$(CXX) $(CFLAGS) -o $@ $(LIBDIR) $? $(LIBRARIES)
Hymap : Hymap.cpp
$(CXX) $(CFLAGS) -c $<
Graphics : Graphicsi.cpp
$(CXX) $(CFLAGS) -c $<
HYSub : HYSub.cpp
$(CXX) $(CFLAGS) -c $<
HyBase : HyBase.cpp
$(CXX) $(CFLAGS) -c $<
HyView : HyView.cpp
$(CXX) $(CFLAGS) -c $<
clean:
rm -f *.o
이 매이크파일을 아래의 명령어처럼 동작되도록 하고싶은데,
어디에 저 옵션들을 넣어야 할지 모르겠습니다..
gcc -o Openmap -m32 -Xlinker --start-group Graphics.cpp Hymap.cpp HyView.cpp OpenMap.cpp HyBase.cpp HYSub.cpp -lm -Xlinker --end-group
도와주시면 너무나 감사하겠습니다..
리눅스 32비트 컴파일
리눅스 64비트 체제에서 32비트 컴파일
http://blog.naver.com/darkwonderer?Redirect=Log&logNo=10100045336
찾아보니. -m32 만 사용하네요.
-Xlinker 이건 플스 액플 컴파일할때. 사용한다고 하네요.
http://search.naver.com/search.naver?sm=stb_hty&where=se&ie=utf8&query=-Xlinker
--start-group --end-group 이건 찾아봐도 그냥은 안나오네요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
-Xlinker --start-group 은
-Xlinker --start-group 은 linker 에게 --start-group 옵션을 넘겨주라는 뜻이고,
-Wl,--start-group 이라 적어도 마찬가지 입니다.
--start-group 과 --end-group 사이에 위치한 오브젝트, 특히 정적 라이브러리들의 사용하지 않는 심볼 정리는 제일 나중 순서로 미뤄지게 됩니다.
정적 라이브러리들을 여러 개 사용하는 경우에 유용한데, 순서에 맞춰서 적어줘야만 하는 제약에서 자유롭게 됩니다.
CXXFLAGS 는 Make 매뉴얼을 읽어보세요.
http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html#Implicit-Variables
댓글 달기