我正在与另外 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 在您的开发机器上准备就绪,请执行以下步骤。
- 打开 Eclipse 并切换到 CDT:单击 Window->Open Perspective->Other... 并选择 C/C++
- 选择:Eclipse->文件->新建->C++ 项目
- 项目名称:查看器
- 选择:项目类型->GNU Autotools->Hello World C++ Autotools 项目
- 点击:下一步
- 点击:完成
- 在项目资源管理器中右键单击:查看器 -> 重新配置项目
- 单击:控制台 -> 显示选定的控制台子菜单 -># CDT Global Build Console。如果“autoreconf -i”输出是名义上的,请继续执行步骤 9。如果控制台报告: sh: autoreconf: command not find,则将 autoreconf 命令的路径添加到项目构建环境中:
- 在项目资源管理器中右键单击:查看器 -> 属性 -> C/C++ 构建 -> 环境 -> 添加...
- 名称:路径
- 值:path_to_autoreconf:${env_var:PATH}
- 点击:确定
- 点击:应用
- 返回第 8 步。
- 双击:Project Explorer->viewer->src->viewer.cpp
添加一些代码:
包括
包含
包括
int main(int argc, char *argv[]) {
断言(argc > 1);
CvMat* img = cvLoadImageM(argv 1 );
cvNamedWindow("图片", CV_WINDOW_AUTOSIZE);
cvShowImage("图片", img);
cvWaitKey(0);
返回0;
}
双击: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)
- 双击:Project Explorer->viewer->src->Makefile.am 并输入以下代码。
>
bin_PROGRAMS=viewer
viewer_SOURCES=openCvFocusIssue.cpp
viewer_LDFLAGS = -lboost_regex@BOOST_LIB_SUFFIX@ -lopencv_core -lopencv_highgui
- 重复步骤 8,autoreconf(重新配置项目)
- 点击:Project Explorer->查看器
- 通过单击工具栏中的锤子来构建项目。如果没有看到锤子,请选择“Window”->“Open Perspective”->“Other...”,然后选择“C/C++”。如果 C/C++ 未显示,请安装 CDT。
- 依次单击:Project Explorer->viewer、Run->Run,然后在“运行方式”窗口中->“本地 C/C++ 应用程序”,然后在“启动调试配置选择”窗口中->gdb/mi 并按 Enter 键。您应该会看到 Hello World。
- 退出 Eclipse 并导航至查看器项目目录。
- 在命令行上,发出 make dist
- 确保您有viewer-1.0.tar.gz 或类似名称的文件,然后将其删除:rmviewer-1.0.tar.gz
- 在命令行上发出 make clean
- 在同一位置发出 make distclean。
- 导航到包含查看器项目的工作区目录。
- 将整个查看器目录移动到包含要放置查看器项目的 svn checkout 的目录。
- 将目录更改为您刚刚将查看器移动到的位置。
- svn add browser && svn ci -m "添加 eclipse-autotool 项目"
- 打开 eclipse 并确保您已安装 SVN 连接器。
- 从 Project Explorer View 中删除“查看器”项目。
- 打开 eclipse 并将此 SVN 存储库 checkout 添加到团队透视图中。
- 从 SVN 存储库 checkout 导入查看器项目。
- 切换回 C/C++ 视角并享受乐趣。
关于eclipse - 使用跨平台库在 Eclipse 中设置跨平台 C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811672/