You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Kali虚拟机编译C/C++脚本时遇头文件找不到错误求助

解决Kali Linux下编译C/C++时头文件缺失的问题

我来帮你搞定这个问题!你的报错其实分两种明确的情况,咱们逐一拆解解决:

1. 关于winsock头文件的错误

test.cpp:39:10: fatal error: winsock: No such file or directory #include

这个问题根源很清晰:winsock.h是Windows平台专属的套接字编程头文件,Linux系统本身就没有这个文件。如果你的代码是针对Windows编写的,要在Kali上运行必须做跨平台适配:

  • 把#include <winsock>替换为Linux下的套接字标准头文件:
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    
  • 同时注意:Windows的套接字初始化函数WSAStartup()在Linux下完全不需要,直接删除即可;关闭套接字要用Linux的close()代替Windows的closesocket()。

2. 关于iostream头文件的错误

iostream是C的标准头文件,出现找不到的问题大概率是你没安装C编译环境,或者用错了编译命令:

  • 先检查是否安装了g++:在终端输入g++ --version,如果提示命令不存在,执行以下命令安装:
    sudo apt update
    sudo apt install g++
    
  • 编译C程序必须用g++命令(gcc是C语言编译器,默认不会链接C标准库):
    g++ test.cpp -o test
    ./test
    

额外提醒

如果你的代码里还有其他Windows特有的API(比如CreateThread、GetModuleHandle这类),那得逐个替换成Linux对应的函数;如果不想改代码,也可以尝试用Wine运行编译好的Windows程序,但这只是临时方案,长期来看还是做代码的跨平台适配更靠谱。

内容的提问来源于stack exchange,提问作者Klouse Wolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:10:46