CPP-将源代码从Windows转换为Linux

CPP - Convert source code from Windows to Linux

本文关键字:转换 Linux Windows 源代码 CPP-      更新时间:2023-10-16

我有一个专为Windows构建的单文件CPP应用程序,仅在命令行中运行。

我也试图使其也适用于Linux。

该应用程序使用的唯一库是:

#include <iostream>
#include "setjmp.h"
#include "windows.h"
#include "time.h"

它还使用各种无符号整数(UINT8,UINT16,UINT32,UINT64(。

除此之外,没有其他特定于Windows的API。

我的问题是如何转换代码,以便它与Linux兼容?有一个简单的方法吗?

以相反的方式进行。代码,可能使用一些跨平台框架,例如POCO或QT(在非GUI代码中也可以使用,例如使用QTCORE ,无需 QTGUI(,或以某些Windows独立的方式进行提升,并定期对其进行编译在 oss。

btw setjmp.h是c 不友好(混乱且与C 异常不相容(,甚至在Windows上。

所以删除

#include "setjmp.h" /// wrong in all C++ programs
#include "windows.h"  //// specific to Windows

然后修复代码(例如所有汇编错误;但是在Linux上使用所有warnin&amp; debug info,例如使用 g++ -Wall -Wextra -g(,可能会使用一些框架,例如我提到的框架。

不要 convert c 代码(从Windows到Linux(,但要努力编写 Portable C 代码,这要归功于一些精心选择的框架。

也许您的应用程序可以写在一些纯便携式C 11中(但是,不需要#include "windows.h"(。命令行实用程序(例如wccatgrep(具有所有功能的子集(可能会写在便携式C 11-中,甚至可能不需要任何其他框架。

ps。如果没有您的源代码,也不了解该应用程序是什么,就不可能为您提供更多帮助。您的第一个任务是精确地了解该代码以及在Windows上应该做什么。也许在干净的C 11中重写它(也许还有一些其他框架....(是最快的方法。