Ncurses静态库包含在C ++项目中

时间:2011-03-01 15:43:56

标签: c++ ncurses

我已经安装了我的项目正在使用的最新的ncurses库。现在,我想将ncurses静态库签入svn,以便我可以在另一台机器上签出项目并编译它,而无需再次在系统上安装ncurses。

所以问题是libncurses.a,libncurses ++。a和libncurses_g.a文件之间有什么区别?我是否需要将它们全部用于我的C ++项目? 谢谢!

2 个答案:

答案 0 :(得分:2)

libncurses.a   - This is the C compatible library.
libncurses++.a - This is the C++ compatible library.
libncurses_g.a - This is the debug library.
libncurses_p.a - This is the profiling library.

如果您想知道是否可以在不使用libncurses.a的情况下使用,则可以重命名该库并运行应用程序的构建。

答案 1 :(得分:1)

我的答案有点晚了[:-)]因为你在四年多前发布了你的问题。但是:

在SVN中存档预编译库意味着如果目标计算机在某些关键方面存在差异,则构建的应用程序可能会失败。

是的,您可以安全地在完全以相同方式配置的其他计算机上运行该应用程序(例如,在完全同构的计算集群上)。但是,如果机器不同(例如,因为一台机器进行了系统升级而另一台机器没有),它可能会停止工作。这种情况不太可能发生,因此风险可能是您可以接受的。

我建议另一个解决方案:将最新的稳定版本的libncurses源代码(tarball)提交到SVN repo并添加一个运行libncurses构建的小脚本(或生成目标),并将构建的库安装到某个项目目录中(不是系统目录,而是在applciation构建目录旁边,不提交SVN)。如果要升级libary或者如果你想在另一台机器上构建/运行,则只需重复此构建步骤。

这不适用于特殊的ncurses库,但适用于任何库。

根据您的项目目标,请考虑进一步阅读

  • 包管理
  • 交叉编译