eclipse - 使用跨平台库在 Eclipse 中设置跨平台 C++ 项目

标签 eclipse svn configuration cross-platform libraries

我正在与另外 8 个人一起开发一个跨平台 C++ 项目,该项目使用以下库:

  • OpenCV 库
  • Boost C++ 库

该项目旨在跨平台,因此所有用户都同意不使用特定于平台的代码,并且为了使事情尽可能简单,所有用户都将使用 Eclipse 作为他们的 IDE。不过,有些人将使用适用于 Windows 的 Eclipse,而其他人将使用适用于 Linux 的 Eclipse。

由于项目将托管在 SVN 上,我们希望避免与共享的不同配置文件(如 make 文件、eclipse 项目文件等)发生冲突。我们还希望通过 SVN 共享尽可能多的配置文件,以使配置尽可能简单。

假设所有用户都已正确配置系统变量并安装了所需的构建工具(例如 make、cmake 等),并且已正确配置其 Eclipse 设置(但不是特定于项目的设置)。

如何一次性配置项目以及在存储库上共享哪些配置文件,以便 Windows 和 Linux 用户无需修改从 SVN 存储库检索的配置文件即可编译该项目?

(我并不是在寻找专门适用于我提到的这两个库的完整解决方案,因此我希望获得一般的逐步说明,这将使我能够轻松添加另一个库。)

最佳答案

一般讨论:

您需要安装 Cygwin 或类似的东西,以使 GNU Autotools 工具链可用于 Windows 上的 Eclipse: How to deal with Eclipse CDT+Cygwin?

一旦您的工具链、带有 CDT 和 SVN 连接器的 Eclipse 在您的开发机器上准备就绪,请执行以下步骤。

  1. 打开 Eclipse 并切换到 CDT:单击 Window->Open Perspective->Other... 并选择 C/C++
  2. 选择:Eclipse->文件->新建->C++ 项目
  3. 项目名称:查看器
  4. 选择:项目类型->GNU Autotools->Hello World C++ Autotools 项目
  5. 点击:下一步
  6. 点击:完成
  7. 在项目资源管理器中右键单击:查看器 -> 重新配置项目
  8. 单击:控制台 -> 显示选定的控制台子菜单 -># CDT Global Build Console。如果“autoreconf -i”输出是名义上的,请继续执行步骤 9。如果控制台报告: sh: autoreconf: command not find,则将 autoreconf 命令的路径添加到项目构建环境中:
    1. 在项目资源管理器中右键单击:查看器 -> 属性 -> C/C++ 构建 -> 环境 -> 添加...
    2. 名称:路径
    3. 值:path_to_autoreconf:${env_var:PATH}
    4. 点击:确定
    5. 点击:应用
    6. 返回第 8 步。
  9. 双击:Project Explorer->viewer->src->viewer.cpp
  10. 添加一些代码:

    包括

    包含

    包括

    int main(int argc, char *argv[]) {

    断言(argc > 1);

    CvMat* img = cvLoadImageM(argv 1 );

    cvNamedWindow("图片", CV_WINDOW_AUTOSIZE);

    cvShowImage("图片", img);

    cvWaitKey(0);

    返回0;

    }

  11. 双击:Project Explorer->viewer->configure.ac,然后在 AC_PROG_CXX 下面输入以下代码。

    AC_CHECK_LIB([opencv_core],[cvSetZero],[],[])

    AC_CHECK_LIB([opencv_highgui],[cvShowImage],[],[])

    AC_CHECK_LIB([boost_regex-mt],[regexecA],[BOOST_LIB_SUFFIX="-mt"],[BOOST_LIB_SUFFIX=""])

    AC_SUBST(BOOST_LIB_SUFFIX)

  12. 双击:Project Explorer->viewer->src->Makefile.am 并输入以下代码。 >

    bin_PROGRAMS=viewer

    viewer_SOURCES=openCvFocusIssue.cpp

    viewer_LDFLAGS = -lboost_regex@BOOST_LIB_SUFFIX@ -lopencv_core -lopencv_highgui

  13. 重复步骤 8,autoreconf(重新配置项目)
  14. 点击:Project Explorer->查看器
  15. 通过单击工具栏中的锤子来构建项目。如果没有看到锤子,请选择“Window”->“Open Perspective”->“Other...”,然后选择“C/C++”。如果 C/C++ 未显示,请安装 CDT。
  16. 依次单击:Project Explorer->viewer、Run->Run,然后在“运行方式”窗口中->“本地 C/C++ 应用程序”,然后在“启动调试配置选择”窗口中->gdb/mi 并按 Enter 键。您应该会看到 Hello World。
  17. 退出 Eclipse 并导航至查看器项目目录。
  18. 在命令行上,发出 make dist
  19. 确保您有viewer-1.0.tar.gz 或类似名称的文件,然后将其删除:rmviewer-1.0.tar.gz
  20. 在命令行上发出 make clean
  21. 在同一位置发出 make distclean。
  22. 导航到包含查看器项目的工作区目录。
  23. 将整个查看器目录移动到包含要放置查看器项目的 svn checkout 的目录。
  24. 将目录更改为您刚刚将查看器移动到的位置。
  25. svn add browser && svn ci -m "添加 eclipse-autotool 项目"
  26. 打开 eclipse 并确保您已安装 SVN 连接器。
  27. 从 Project Explorer View 中删除“查看器”项目。
  28. 打开 eclipse 并将此 SVN 存储库 checkout 添加到团队透视图中。
  29. 从 SVN 存储库 checkout 导入查看器项目。
  30. 切换回 C/C++ 视角并享受乐趣。

关于eclipse - 使用跨平台库在 Eclipse 中设置跨平台 C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811672/

相关文章:

java - 从 Eclipse 的模拟器控制返回不准确的值

mysql - 如何确定mysql正在使用哪个my.cnf

Vim 在启动时在命令栏中放置随机字符

Eclipse 和 SVN 导入一个已经被 SVN check out 的现有文件夹

svn - svn 中的预提交钩子(Hook) : could not be translated from the native locale to UTF-8

java - 配置多个 log4j2 记录器

java - 在 project.properties 中设置构建路径

java - 字符串在 android 和 eclipse 控制台中显示不同

java - 如何将进度监视器传递给多个子程序?

linux - Svn 项目,获取干净的文件