C++ C++;项目

C++ C++;项目,c++,ncurses,C++,Ncurses,我已经安装了我的项目正在使用的最新ncurses库。现在,我想将ncurses静态库签入svn,这样我就可以在另一台机器上签出项目并编译它,而无需再次在系统上安装ncurses 所以问题是libncurses.a、libncurses++.a和libncurses_g.a文件之间有什么区别?我需要所有的C++项目吗? 谢谢 如果你想知道你是否可以不使用libncurses.a,你可以重命名库并运行应用程序的构建。我的答案来得有点晚[:-)],因为你在4年多前发布了你的问题。但是: 在SVN中归档

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

所以问题是libncurses.a、libncurses++.a和libncurses_g.a文件之间有什么区别?我需要所有的C++项目吗? 谢谢

如果你想知道你是否可以不使用libncurses.a,你可以重命名库并运行应用程序的构建。

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

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

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

我建议另一种解决方案:将libncurses源代码(tarball)的最新稳定版本提交到您的SVN repo,并添加一个小脚本(或make target)来运行libncurses构建并将构建的库安装到某个项目目录(不是系统目录,而是在应用程序生成目录旁边,不提交给SVN)。只有在库需要升级或希望在另一台计算机上生成/运行时,才需要重复此生成步骤

这不适用于特殊情况下的ncurses图书馆,但适用于任何图书馆

根据您的项目目标,考虑关于

的进一步阅读
  • 包管理
  • 交叉编译

非常感谢您的回答。我成功地用libncurses.a编译了应用程序。由于某种原因,当我使用libncurses++.a时,我最终得到了一堆未定义的符号。但是,当我尝试运行应用程序时,我确实遇到了一个错误:打开终端时出错:xterm。当我编译安装了ncurses并且对lncurses进行墨迹绘制一切正常…在这种情况下,我能做什么?使用指向库的静态链接是否像中所示:
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.