如何在 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.alibboost_system.solibboost_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-Uni​​x。这可以跟踪独立的库和路径配置以及不同的工具链,同时仍然从相同的代码库中提取。

【讨论】:

以上是关于如何在 Eclipse 中为交叉编译项目有条件地包含两个相同版本的不同名称库?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中的交叉编译器前缀和路径

windows eclipse c++怎么交叉编译linux

在 linux 上用 Eclipse 交叉编译,在 windows 上用 eclipse 交叉编译?

如何在 Linux 或 Windows 中为 OS X 编译?

怎么填写eclipse的cross compiler prefix&path

如何在 android studio 中为 IBM MobileFirst 项目导入外部库项目?