c++ - 如何发布 C++ - 具有单个 boost 库的应用程序

标签 c++ boost

如果之前有人问过这个问题,一开始很抱歉,但我通过搜索一无所获。

第二个:

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

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

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

我现在想要的是一个包含头文件和 cpp 文件的文件夹,我的老师在他的机器上做的一个简单的 make 就可以完成这项工作。

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

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

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

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

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

它甚至可以完美地编译和运行,但只在我的机器上而不是在使用带有 gcc 4.7.x 的 Fedora 17 的 friend 的机器上。

有没有像 这样简单易行的方法“将头文件和 cpp 文件放在一个文件夹中,并将 cpp 文件的路径添加到 Makefile 的列表中,然后运行 ​​make,嘿,你有程序”?

谢谢

最佳答案

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

gcc -E source.cpp

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

关于c++ - 如何发布 C++ - 具有单个 boost 库的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349309/

相关文章:

c++ - 从 unordered_map 中删除值的有效方法,当只给出值 C++

c++ - 车钩运动功能未发现中断

c++ - 如何在 qmake 项目中使用 Boost 库?

C++ BigInteger 到字节数组

c++ - 在 OpenCV 中 waitKey (30) 是什么意思?

c++ - 在 64 位 x86 机器中读/写双值是原子的

c++ - 覆盖语法,返回指向固定大小数组的指针的专用模板方法

python - 无法导入 Boost.Python 创建的 dll(遵循 Boost Python 的 QuickStart)

c++ - boost dynamic_bitset 的编译错误

c++ - boost 中有一个 DAG 图,没有顶点描述符失效