Makefile 에 원하는 옵션을 추가하고 싶어요.. 어떻게 해야 하죠?

vovheasldp의 이미지

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

도와주시면 너무나 감사하겠습니다..

shint의 이미지

리눅스 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

bushi의 이미지

-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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.