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

时间:2010-09-28 10:08:10

标签: eclipse svn configuration cross-platform libraries

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

  • OpenCV Library
  • Boost C ++ Library

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

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

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

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

(我不是在寻找专门针对我提到的那两个库的完整解决方案,所以我很感激一般的逐步解释,这将使我能够轻松添加另一个库。)< / p>

2 个答案:

答案 0 :(得分:0)

一般性讨论:

您需要安装Cygwin或类似的东西,以便在Windows上为Eclipse提供GNU Autotools工具链: How to deal with Eclipse CDT+Cygwin?

在您的开发计算机上准备好带有CDT和SVN连接器的工具链Eclipse之后,请执行以下步骤。

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

    包括&lt; opencv / cv.h&gt;

    包括&lt; opencv / highgui.h&gt;

    包括&lt; cassert&gt;

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

    断言(argc&gt; 1);

    CvMat * img = cvLoadImageM(argv 1);

    cvNamedWindow(“Picture”,CV_WINDOW_AUTOSIZE);

    cvShowImage(“Picture”,img);

    cvWaitKey(0);

    返回0;

    }

  11. 双击:Project Explorer-&gt; viewer-&gt; 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-&gt; viewer-&gt; src-&gt; Makefile.am并输入以下代码。  &GT;
      

    bin_PROGRAMS =观察者

         

    viewer_SOURCES = openCvFocusIssue.cpp

         

    viewer_LDFLAGS = -lboost_regex @ BOOST_LIB_SUFFIX @ -lopencv_core -lopencv_highgui

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

答案 1 :(得分:0)

两个建议:

  • 使用cmake:我喜欢这个工具。有一点学习曲线但是 如果你做得对,所有项目将包括cmake文件 当一个人第一次检查出来时,他们会运行cmake来生成 他们的makefile(或VC ++项目文件等),包含所有不同的linux或windows规则 可能需要。

  • 检查项目的基本配置,然后将这些配置添加到git / svn忽略,这样就没有人再次检查它们,然后当你第一次结账时你必须让你的配置运行但之后不会被覆盖。