2011-06-13 2 views
-1

다음 g ++ 명령에서 boost.python 객체를 빌드 할 때 옵션의 의미를 설명 할 수 있습니까?gcc/g ++ 컴파일러의 모든 기능을 완벽하게 사용하기 위해 알아야 할 개념은 무엇입니까?

# location of the Python header files 
PYTHON = /usr/include/python2.7 

# location of the Boost Python include files and library 

BOOST_INC = /usr/include 
BOOST_LIB = /usr/lib 

# compile mesh classes 
TARGET = ex1 

$(TARGET).so: $(TARGET).o 
     g++ -shared -Wl,--export-dynamic \ 
     $(TARGET).o -L$(BOOST_LIB) -lboost_python \ 
     -L/usr/lib/python2.7/config -lpython2.7 \ 
     -o $(TARGET).so 

$(TARGET).o: $(TARGET).c 
     g++ -I$(PYTHON) -I$(BOOST_INC) -c $(TARGET).c 

무엇을 :

  • W1 내지 --export 동적

의미를 공유

  • ?

    유틸리티를 빌드 할 때 gcc/g ++ 컴파일러를 최대한 활용하는 방법을 배워야합니까? EDIT : 모두를 필요로하지는 않지만 배우기 가장 일반적으로 사용되는 기능은 무엇입니까?

    빌드하기 위해 링크해야하는 필수 라이브러리를 정확히 알 수있는 더 좋은 방법이 있습니까? 현재, 부스트에서 날짜 시간 라이브러리를 사용한 경우, -lboost_date_time과 같은 작업을 수행했으며 작동하지만 다른 라이브러리에서는 작동하지 않는 경우가 있습니다.

    또한 boost.python의 경우 Bjam을 사용하고 싶지 않습니다. 배우는 데 많은 시간이 걸리고 문서가 모호하게 보입니다. make 유틸리티는 나에게 보편적으로 보입니다. 그러나 Windows에서 MSVS와 같은 빌드 프로세스를 자동화 할 수있는 IDE가 있습니까? 코드 :: 차단? IDE에서 수동으로 작성한 makefile의 장점은 무엇입니까? 빌드 자동화로 많은 시간을 절약하는 것 같습니다.

  • +2

    정말 ** 모든 ** gcc의 기능이 필요합니까? – ybungalobill

    +5

    이 질문은 매우 광범위하며 하위 질문이 포함되어 있습니다. 한 번에 한 가지만 집중 해보십시오. –

    +0

    'man g ++'또는'man gcc' 다음에 옵션을 검색하고, 설명을 읽고, 명확하지 않은 경우 다시 돌아와 물어보십시오. –

    답변

    8

    GCC는 다른 기존 프로그램보다 훨씬 많은 옵션을 제공합니다. 당신은 확실히 모든 것을 필요로하지는 않을 것이지만, 당신은 약간을 이해해야 할 것이므로, GCC documentation을 읽을 필요가 있습니다.

    관련 문제