64位系统内核模块支持c++
C++ support in kernel module in 64-bit system
我知道内核模块中不建议使用c++,但是,我们有一个混合使用C和c++文件编写的模块,该模块在32位系统(内核2.6)中工作良好,现在我们正试图将该模块移植到64位系统,64位系统中根本不支持c++吗?
粗略地说,要在内核中使用c++,你应该摆脱所有的c++运行时库依赖,首先,你应该重新实现new/delete
并删除异常处理(用-fno-exceptions
编译)。实际上,如果32位代码工作,这些简单的情况必须已经解决了。
试着编译并加载模块。如果幸运的话,将不会有链接错误,并且您有很好的机会让模块工作(模除通常的跨平台问题集,如结构大小和对齐)。如果你没有,你会收到一个未定义的符号列表,它会给你一个应该实现或工作的提示。
问题不在于语言是否支持64位,而在于库和其他代码是否可移植。
相关文章:
- 编译时未启用intel oneApi CUDA支持
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用CMake检测支持的C++标准
- 为什么istream不支持右值提取
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 扩展光电二极管探测器以支持多个传感器
- MSVC是否支持C++11样式的属性而不是__declspec
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 哪个C++规范开始支持 std::vector
- 如何检测VS C++编译器是否支持C++11?
- CertGetCertificateChain 具有支持的内存存储和证书信任列表
- Casablanca/cpprestsdk listener.support接受函数,但不支持方法
- 将 IPv6 支持添加到雨量计
- 为什么C++不支持对未初始化变量进行智能分析?
- LMDB 是否支持随机读取?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错