【发布时间】:2011-06-13 08:06:18
【问题描述】:
您能否向我解释一下用于构建 boost.python 对象的以下 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
做什么:
- Wl
- --动态导出
- 共享
是什么意思?
为了充分利用 gcc/g++ 编译器以及构建实用程序,我还应该学习哪些其他概念? 编辑:我不需要所有这些,但最常用的功能是什么?
有没有更好的方法可以准确地知道我需要链接到哪个所需的库来构建?目前,我只能猜测要链接什么,即如果我使用 Boost 的日期时间库,我做了类似 -lboost_date_time 之类的事情,它只是有效,但有时不适用于其他库。
另外,对于 boost.python,我不想使用 Bjam,因为它需要很多时间来学习,而且文档看起来很模糊。 make 实用程序对我来说似乎更普遍。但是,是否有一个 ide 可以像 Windows 中的 MSVS 一样自动化构建过程?代码::块?与 IDE 管理相比,手动编写的 makefile 有哪些优势?构建自动化似乎可以节省大量时间。
【问题讨论】:
-
你确定你绝对需要所有 gcc的特性吗?
-
这个问题非常广泛,包含子问题。请尝试一次只专注于一件事。
-
man g++或man gcc,然后搜索选项,阅读描述,如果不清楚,回来询问。