Windows下的C++ 程序移植到linux下

本文介绍了将Windows下成功运行的C++代码移植到Linux系统时需注意的问题,包括头文件使用、防止重复包含方法、二维vector格式、指针初始化、中文字符占位等,还给出了部分问题的解决办法,如替换头文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候,需要将原本Windows下成功运行的C++代码移植到linux系统下,过程往往不是特别顺利,下面列出几个移植过程中需要注意的几个问题

1、#include<windows.h>  非win平台不能使用

2、#pragma once 避免同一个文件被包含多次,可移植性不好,linux下就会报错,还有一种相同功能的 是#ifndef是通用的,具体用法如下

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

//中间为函数声明

#endif

ps:防止重复包含的两种方法

     #pragma once 是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。   

     #ifndef,#define,#endif用来防止某个宏被多次定义。

3、二维verctor< vector<int>>,WIndows下可以,但是linux下必须改为 > >,中间多一个空格

4、 #include "stdafx.h"   <direct.h>在linux下出错 

5、#include <io.h> 出错 no such file ,解决方法 改为#include <sys/io.h>即可

6、#include <windef.h>,出错 no such file,该文件是宏定义相关文件,直接注释掉会造成min或者max等函数出出错,解决方法,改为include <algorithm>

7、std::fstream fw1(nameCodeResultsFile, std::ios::out);其中 nameCodeResultsFile 是一个string类型的文件名,需要改为&nb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值