如何使用单个boost库发布C ++应用程序

时间:2012-11-12 18:25:47

标签: c++ boost

首先对不起,如果以前问过这个问题,但我没有找到任何搜索结果。

第二名:

  • 我正在使用Kubuntu 12.04,
  • gcc(Ubuntu / Linaro 4.6.3-1ubuntu5)4.6.3,
  • boost v1.48.0

正如标题所说,我有一个使用 boost / program options 库的应用程序。

现在我想将应用程序的源代码发送给我的老师,但他还没有安装Boost。我正在寻找一种方法从整个boost库中提取相应的源文件,只发送那些真正需要的文件。

我现在想要的是一个包含标题和cpp文件的文件夹,我老师在他的机器上使用简单的make来完成工作。

但我不知道如何获取这些文件。

  • 我找到bcp但我不知道如何处理输出。有.hpp和.cpp文件但是当我尝试编译时我得到错误错误...

  • 然后我在boost文件夹中看到了bootstrap.sh脚本,我用bootstrap.sh --with-libraries=program_options调用了它。这为每个库构建了一个二进制库和头文件。

现在我使用了第二步中的libboost_program_options.a和第一步中的头文件

我将路径放在包含路径的-I path_to_header标题上,并静态链接到libboost_program_options.a

这甚至可以完美地运行,但只能在我的机器上运行,而不是在使用Fedora 17和gcc 4.7.x的朋友的机器上运行。

是否有任何工作和简单的方法,如“将头文件和cpp文件放在一个文件夹中,并将cpp文件的路径添加到Makefile中的列表,然后运行make和HEY,你有程序“

由于

3 个答案:

答案 0 :(得分:0)

为什么不创建源代码的合并?对于每个源文件,您都可以运行

gcc -E source.cpp

获取预处理器输出。然后,您可以将标题部分与实际源代码分开,只是为了清楚起见。包含仅减少到一个文件。

答案 1 :(得分:0)

我不知道,如果这是回答,你想听听我的意见,但是现在我的老师在他听到这些问题之后在他的电脑上安装了升级库......

现在我可以使用-lboost_program_options选项链接这些文件,它可以在我的机器上,在我朋友的机器上工作,并且(可能是最重要的)在我的老师上...

感谢您的时间:)

答案 2 :(得分:0)

您可以尝试-M (or -MM)命令行选项,它可以获取特定源文件所依赖的所有文件。