在Windows环境下使用与Linux/Unix操作相关的C/C++头文件的方法(以TDM-GCC和CLion为例)

前言

        很多时候我们需要在Windows环境中写与Linux/Unix相关的C/C++代码,而Linux/Unix相关的头文件在Windows中是缺失的,这就导致IDE的文本纠错等功能无法正常使用带来很大的不便。

        因此解决方法也是显而易见的——把这些头文件添加到我们的Windows头文件搜索路径中即可。

1.获取头文件

        以Ubuntu 20.0.4.5为例,找到/usr/include/目录,这个目录下包含了我们需要的绝大部分头文件。

2.找到编译器的默认头文件路径

        以TDM-GCC为例,在TDM-GCC安装目录下找到\lib\gcc\x86_64-w64-mingw32\10.3.0\include\文件夹。由于版本不同路径可能不一样,可以在IDE中导入一个标准库头文件然后查看这个文件的路径,一般来说这个路径就是要找的路径。

 

 3.将头文件复制到Windows中

        将第一步include目录中的文件都复制到第二步的include文件夹中,遇到重复的文件选择跳过不要覆盖,因为Windows和Linux/Unix的底层实现可能不一样,所以同样名字的头文件内容可能是不一样的,如果覆盖的话可能未来对Windows编程时可能会出现错误。贴一个知乎对这个问题的回答:Linux系统里,gcc的各种头文件与Windows平台里的有何差别? - 知乎

4.添加头文件路径

        在复制头文件后,由于不同环境下的编译器默认头文件搜索路径不同,对头文件的include可能会出错,例如#include <sys/msg.h>在IDE中可能会显示找不到该文件,因为Windows默认起始路径与Linux的默认起始路径不同,导致头文件的相对位置不同,所以在Linux中正确的代码在Windows中会显示错误。

        以CLion为例,解决方法是在项目的CMakeLists.txt文件中添加头文件路径。

INCLUDE_DIRECTORIES(TDM-GCC安装路径/lib/gcc/x86_64-w64-mingw32/10.3.0/include/x86_64-linux-gnu/)

        将上面的代码添加到CMakeLists.txt文件中,这个路径不一定正确,由于安装路径和版本不同需要对路径进行修改,在ubuntu系统上应该是include/x86_64-linux-gnu 或者是include/i386-linux-gnu。

 

后记

        其他编译器和IDE应该都可以根据这种思路实现Linux/Unix操作相关的C/C++头文件的调用,思路是一样的,只是过程不一样。

        正常导入头文件不代表着程序能在Windows下运行,而仅仅是使IDE能够正常发挥它的上下文查看、代码补全、代码纠错等作用。

        在复制头文件时需要格外留心,最好不要覆盖原有的头文件!

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值