将 Linux 兼容项目从 Windows 移植到 Linux [关闭]

Posted

技术标签:

【中文标题】将 Linux 兼容项目从 Windows 移植到 Linux [关闭]【英文标题】:Porting Linux compatible project from Windows to Linux [closed] 【发布时间】:2016-06-02 00:42:08 【问题描述】:

在我工作的公司中,我们在 Windows、Visual Studio 上进行开发,并使用 Eclipse 为 Linux 进行交叉编译。我们的最终应用程序在 Linux 上运行。我试图说服他们在 Linux 上构建所有东西是多么容易和快速,而不是使用旧的交叉编译器和各种奇怪的错误。当我在 Linux 上使用更高版本的 gcc 编译它们时,一些错误就消失了。此外,由于交叉编译器很旧,我们无法使用 C++11 功能。

我遇到的一个主要问题是,由于我们的项目是在 Windows 上开发的,因此我很难格式化标题!例如,假设我有一个名为 io 的文件夹,其中有一个头文件 Demo.h。那么这个

 #include <IO\demo.h>

在 Windows 上运行良好。但在 Linux 上则不然,因为 Windows 不区分大小写,而且 \/ 都可以在 Windows 上运行。在 Linux 上它必须是这样的

#include <io/Demo.h>

否则我会得到一个错误,它找不到指定的头文件。我们正在处理 20 多个主要项目,每个项目大约 3-4 GB。我已经修改了其中一个。我花了大约 7 个小时才完成。

有什么工具可以帮助我更快地完成这个过渡吗?

我们的源代码 95% 是 C++,其余的是 C。

【问题讨论】:

是的,有一个工具可以做到这一点。它被称为perl。编写一个简单的 perl 脚本来遍历整个文件层次结构并修复 #include 路径名应该不会超过半小时左右。 【参考方案1】:

官方标准是使用/作为文件路径分隔符,配合c-preprocessor解析#include语句中的路径。

\ 的用法似乎是一个 MSVC 扩展。


官方工具是sedawk 来解决linux 下大型代码库的此类问题。


修复区分大小写有点困难,但可以使用一些技巧与来自find 的匹配结果...

【讨论】:

以上是关于将 Linux 兼容项目从 Windows 移植到 Linux [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 Qt 应用程序从 Linux 移植到 Windows

将数据序列化代码从 C++ linux/mac 移植到 C++ windows

将socket程序从linux移植到windows上

在windows 下编写的c语言软件可以任意移植到其他系统(例如:linux操作系统)中运行么

Windows程序移植到linux下 出现很多头文件里面定义的变量在linux中找不到想对应的头文件?求救~~~

如何把程序从windows平台移植到linux平台