当前位置: 首页 > news >正文

2401d,d导入C的问题

原文
D中是否可用仅C头文件库?
C语言中,我需要这样做:

#define STB_DS_IMPLEMENTATION
#include "stb_ds.h"

在包含h文件前,必须在单个C文件中定义.
在D中试过:

enum STB_DS_IMPLEMENTATION = 1;
import stb_ds;

但它不管用.有建议吗?也许使用中间C文件会工作 ,但我想知道D是否可完成.
这里自动转换

dmd -c test.c -Hf=test.di

一般使用"仅头"方式,建议把扩展文件名更改为.c直接编译它.

是的,你最好的选择是:
1,把.h重命名为.c并编辑它,以便通过或删除STB_DS_IMPLEMENTATION检查.
2,用你已编写的内容创建一个C文件:

#define STB_DS_IMPLEMENTATION
#include "stb_ds.h"

导入它.

尚不支持从d文件导入.h文件,因为查找优先级存在争议:
0
1

正在试使用仅头文件C库.此项目中的h文件,具体为:https://github.com/nothings/stb.
如果没有#define,这不行.只要有impl代码,按只包含一次设计此头库,因此依赖定义变量的C文件来显式"启用"要包含的impl代码.
根据链接线程,我试从仅有定义和包含的基本C文件生成一个di文件:

#define STB_DS_IMPLEMENTATION
#include "stb_ds.h"

DMD产生了一个段错误错误:

  dmd -c import_stb_ds.c -Hf=stb_ds.di
`[1]73719`段错误`dmd -c import_stb_ds.c -Hf=stb_ds.di`

LDC同样:

  ldc2 -c import_stb_ds.c -Hf=stb_ds.di

我应该报告错误吗?

-H开关有一个错误:
这里
但这不应是必需的,你应该可导入c文件.
这很奇怪,我会看看是否可重现它.
化简为:

enum { A };

-H编译,得到段错误.
相关代码hdrgen.d中:

foreach (em; *d.members)
{if (!em)continue;buf.writestring("alias ");buf.writestring(em.ident.toString);buf.writestring(" = ");buf.writestring(d.ident.toString);buf.writeByte('.');buf.writestring(em.ident.toString);buf.writeByte(';');buf.writenl();
}

它假定枚举有个名字,但在本例中,d.identnull.

http://www.lryc.cn/news/276581.html

相关文章:

  • SpringCloud GateWay实现路由限流
  • 打印日期c++
  • 数据结构入门到入土——链表(1)
  • MySQL C API的使用
  • JavaScript防御性编程
  • 微信预约小程序制作指南:从小白到专家
  • 向量数据库:Milvus
  • 亚马逊国际商品详情 API:获取特定商品详细信息的实践
  • MSB30M-ASEMI小贴片整流桥MSB30M
  • Redis启动方式
  • TEMU 新手小白必看!2024入驻流程/入驻类目/入驻资料等详细流程讲解
  • 【C语言】数组
  • 常见测试技术都有哪些?
  • Spring事务控制
  • swaggerUI不好用,试试这个openapiUI?
  • 嵌入式物联网项目开发实战例程-STM32F103系列之外围器件代码
  • Docker Compose--部署SpringBoot项目--实战
  • 单电阻FOC算法实现永磁同步电机的调整步骤和设置
  • 化学DS-1040 Tosylate 抑制剂 1335138-89-0科研用途
  • PaddlePaddle初使用
  • 【FPGA】分享一些FPGA数字信号处理相关的书籍
  • 深度解析JavaScript面试热点:事件循环、上下文、箭头函数、变量作用域与ES6模块
  • Javaweb之Mybatis的动态SQL的详细解析
  • 物联网与智能家居:跨境电商与未来生活的融合
  • Java内存模型(JMM)是基于多线程的吗
  • Linux离线安装MySQL(rpm)
  • 用 Socket.D 替代原生 WebSocket 做前端开发
  • Transformer架构和对照代码详解
  • 大数的乘法
  • 年度征文 | 机器学习之心的2023