如何在 Eclipse 中为交叉编译项目有条件地包含两个相同版本的不同名称库?
Posted
技术标签:
【中文标题】如何在 Eclipse 中为交叉编译项目有条件地包含两个相同版本的不同名称库?【英文标题】:How can I conditionally include two differently named libraries of the same version for a cross-compile project in Eclipse? 【发布时间】:2014-01-10 18:18:13 【问题描述】:我有一个 Eclipse 项目,我想在 Ubuntu 和 Windows 上编译。
我正在使用需要包含 libboost_system...* 库的 boost 库(特别是 asio)。我在 Windows 和 Ubuntu 上都编译了 boost,最后在 Windows 上得到了libboost_system_mgw48-mt-1_55.a
,在 Ubuntu 上得到了libboost_system.a
、libboost_system.so
、libboost_system.so.1.55.0
。
我不确定我需要包含哪个 Ubuntu 库,但更大的问题是如何在正确的操作系统上同时包含 Windows 和 Ubuntu 库。
我在 Windows 上使用 MinGW 工具链,据我了解,它或多或少是 GCC?然后我假设我应该在 Ubuntu 上简单地使用 GCC 来获得相同的编译过程。
Windows boost 构建命令:
bootstrap.bat mingw
b2 toolset=gcc
Ubuntu boost 构建命令:
bootstrap.sh
b2
Eclipse 能否在每次安装的基础上使用操作系统,我可以通过全局可识别的变量访问该操作系统?
如果是的话,我该如何使用该信息有条件地仅包含正确的库?
【问题讨论】:
【参考方案1】:我想出的解决方案是在项目属性中使用两种配置:Debug-Win32 和 Debug-Unix。这可以跟踪独立的库和路径配置以及不同的工具链,同时仍然从相同的代码库中提取。
【讨论】:
以上是关于如何在 Eclipse 中为交叉编译项目有条件地包含两个相同版本的不同名称库?的主要内容,如果未能解决你的问题,请参考以下文章
windows eclipse c++怎么交叉编译linux
在 linux 上用 Eclipse 交叉编译,在 windows 上用 eclipse 交叉编译?
如何在 Linux 或 Windows 中为 OS X 编译?