为了完全使用gcc / g ++编译器的所有功能,我需要学习哪些概念?

时间:2011-06-13 08:06:19

标签: c++ boost build makefile

您能解释一下这些选项在以下g ++命令中构建boost.python对象的含义吗?

# 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

做什么:

  • Wl
  • - 出口动态
  • 共享

意思?

我应该学习哪些其他概念来充分利用gcc / g ++编译器以及构建实用程序? 编辑:我不需要所有这些但是最常用的功能是什么?

有没有更好的方法来确切知道,我需要链接到构建所需的库?目前,我只能做猜测来弄清楚链接的内容,即如果我使用Boost的日期时间库,我做了像-lboost_date_time这样的事情,它只是有效,但有时不适用于其他库。

另外,对于boost.python,我不想使用Bjam,因为它需要花费很多时间来学习并且文档看起来很模糊。 make实用程序对我来说似乎更普遍。但是,有没有一个ide可以自动化构建过程,如Windows中的MSVS?代码::块?手动编写makefile比IDE管理的优点是什么?它似乎可以节省大量的构建自动化时间。

1 个答案:

答案 0 :(得分:8)

海湾合作委员会可能有比其他任何现有计划更多的选择 - 其中数千个。你当然永远不需要它们,但你需要了解一些,所以你需要阅读GCC documentation