CPP-将源代码从Windows转换为Linux
CPP - Convert source code from Windows to Linux
我有一个专为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"
(。命令行实用程序(例如wc
,cat
,grep
(具有所有功能的子集(可能会写在便携式C 11-中,甚至可能不需要任何其他框架。
ps。如果没有您的源代码,也不了解该应用程序是什么,就不可能为您提供更多帮助。您的第一个任务是精确地了解该代码以及在Windows上应该做什么。也许在干净的C 11中重写它(也许还有一些其他框架....(是最快的方法。
- 将 Genteruse 从 Linux 转换为 Windows
- 绕过 Windows 中的 __declspec(dllimport) 到 Linux 项目的转换
- LINUX 操作系统上的错误:令牌之前预期的构造函数、析构函数或类型转换'('?
- CPP-将源代码从Windows转换为Linux
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- C/C++:是否可以将 Eclipse 项目设置配置为接受 void 指针而不对所有 Linux 发行版进行强制转换
- 如何在 c++ Linux 中使用 ICU 库将 UnicodeString 转换为 windows-1251
- 在 Linux 中将 UTF-32 宽字符转换为 UTF-16 宽字符以获取补充平面字符
- 如何使用 qt 将 Linux 文本文件转换为 Windows 文本文件
- 在Linux上构建Ogre时出错:缩小转换范围
- Linux 编译错误 - 无法将类型"字符串"转换为类型"字符串&&"
- 在Linux/GCC下,将NULL指针访问转换为C++异常
- Linux 和 Windows wchar_t之间的差异和转换
- 使用Swig进行Python将字符串转换为Linux
- 如何将目录路径转换为唯一的数字标识符 (Linux/C++)
- 如何在Linux中将共享库转换为静态库
- 如何利用windows API将c++代码从windows自动转换为linux
- Linux上有符号的16位ALSA PCM数据到U8的转换
- C++ 在 Win DLL 到 Linux SO 转换中将 LPBYTE 更改为无符号字符*后编译器错误
- C++ UTF-16 到 char 的转换(Linux/Ubuntu)