Windows平台构建fbfrog

项目地址:GitHub - freebasic/fbfrog: FreeBASIC binding creation tool

是一个将.h文件转换成freebasic使用的.bi文件的工具。freebasic是使用gcc编译,可以完全兼容C/C++,只需要将函数声明导入即可直接调用。fbfrog就是转换头文件的工具。

官方简介:fbfrog是一个命令行工具,它读取.h文件(C API声明)并生成相应的.bi文件(FreeBASIC API声明)。之所以需要这个工具,是因为FreeBASIC编译器缺乏直接#include C头的能力,而是需要将所有数据类型和函数声明转换为FB语法。至少fbc与gcc是ABI兼容的,所以只需要翻译的头文件,而不需要二进制包装器(不过对于C++绑定来说,情况就不同了)。fbfrog不支持C++,除了一些简单的情况,如引用参数。

项目里没有release文件, 想使用需要自己编译,官方给的makefile适用于Linux,对于Windows平台且不想安装MSYS2的用户,则要自己编译了。

其实就是写一个适用于Windows平台的makefile。

# FBC的绝对路径
FBC := D:/kaiFa/VisualFBEditor1.3.6/compiler/fbc640.exe
EXEEXT := $(shell $(FBC) -print x)-include config.mkEXTRA_FBFLAGS := -maxerr 1
FBFROG_FBFLAGS := -m fbfrog $(FBFLAGS) $(EXTRA_FBFLAGS)
TESTRUNNER_FBFLAGS := $(FBFLAGS) $(EXTRA_FBFLAGS)SOURCES := $(sort $(wildcard src/*.bas))
HEADERS := $(wildcard src/*.bi)
OBJECTS := $(patsubst src/%.bas,src/obj/%.o,$(SOURCES))# We don't want to use any of make's built-in suffixes/rules
.SUFFIXES:build: fbfrog$(EXEEXT) fbfrog$(EXEEXT): src/obj/libfbfrog.a$(FBC) $(FBFROG_FBFLAGS) $^ -x $@src/obj/libfbfrog.a: $(OBJECTS)$(FBC) $(FBFROG_FBFLAGS) -lib $^ -x $@$(OBJECTS): src/obj/%.o: src/%.bas $(HEADERS)$(FBC) $(FBFROG_FBFLAGS) $< -c -o $@tests: buildclean:del /Q /A src\obj\*.PHONY: tests clean

构建命令:mingw32-make
清除obj文件:mingw32-make clean

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

杨辉三角(C语言)

杨辉三角 一.什么是杨辉三角 一.什么是杨辉三角 每个数等于它上方两数之和。 每行数字左右对称&#xff0c;由1开始逐渐变大。 第n行的数字有n项。 前n行共[(1n)n]/2 个数。 … 当前行的数上一行的数上一行的前一列的数 void yanghuisanjian(int arr[][20], int n) {for (int i…

blender怎么导入stl格式文件?

stl格式&#xff0c;一般是用来3D打印用的文件&#xff0c;这种模型一般很小&#xff0c;经常做来做一些DIY的配件&#xff0c;如下图&#xff0c;一共有七八个模型&#xff0c;3D打印机把每个模型实体打出来后&#xff0c;就可以给小朋友组装当智益玩具玩了&#xff0c;我们把…

【Node.js从基础到高级运用】二、搭建开发环境

Node.js入门&#xff1a;搭建开发环境 在上一篇文章中&#xff0c;我们介绍了Node.js的基础概念。现在&#xff0c;我们将进入一个更实际的阶段——搭建Node.js的开发环境。这是每个Node.js开发者旅程中的第一步。接下来&#xff0c;我们将详细讨论如何安装Node.js和npm&#…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——03.差异表达基因筛选(2)

内容如下&#xff1a; 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…

力扣199. 二叉树的右视图(DFS,BFS)

Problem: 199. 二叉树的右视图 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 无论是DFS还是BFS我们都要思考到达二叉树的每一层&#xff08;或者每一层中的每一个节点&#xff09;时&#xff0c;我们都该如何按题目要求做出对应得处理!!!在本体中我们主要是&#x…

Solidity攻击合约:重入攻击与危害分析

以太坊智能合约开发中&#xff0c;重入攻击是一种常见的安全漏洞。这种攻击通常发生在合约的递归调用中&#xff0c;攻击者通过构造恶意交易&#xff0c;使得原本合约在执行过程中不断调用自身或其他合约&#xff0c;从而耗尽合约的Gas&#xff08;交易费用&#xff09;&#x…

Oracle LeetCode 高频 SQL 50 题(进阶版)

https://leetcode.cn/studyplan/sql-premium-50/ 一、查询 1821. 寻找今年具有正收入的客户 selectcustomer_id from Customers where year 2021 group by customer_id having sum(revenue) > 0183. 从不订购的客户 select c.name as Customers from Customers c left j…

【蓝牙协议栈】【经典蓝牙】【BLE蓝牙】蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)

目录 1. 蓝牙协议规范&#xff08;HCI、L2CAP、SDP、RFOCMM&#xff09; 1.1 主机控制接口协议 HCI 1.2 逻辑链路控制与适配协议 L2CAP 1.3 服务发现协议SDP 1.4 串口仿真协议 RFCOMM 1. 蓝牙协议规范&#xff08;HCI、L2CAP、SDP、RFOCMM&#xff09; 1.1 主机控制接口协…

七、软考-系统架构设计师笔记-数据库设计基础知识

1、数据库基础概念 数据库基本概念 数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS) 1.数据(Data) 是数据库中存储的基本对象&#xff0c;是描述事物的符号记录。 数据的种类&#xff1a; 文本、图形、图像、音频、视频等。 2.数据库(Database, DB) 数据库…

基于机器学习的网络入侵检测与特征选择及随机森林分类器性能评估(NSL-KDD数据集)

简介 本文将详细介绍如何利用Python和相关机器学习库对NSL-KDD数据集进行预处理&#xff0c;特征选择&#xff0c;并通过随机森林算法构建网络入侵检测模型。同时&#xff0c;还将展示如何计算并可视化模型的ROC曲线以评估其性能。 首先&#xff0c;我们导入了必要的库&#…

外挂的本质以及进程相关的内容

外挂的本质以及进程内存相关的内容 外挂的本质 外挂&#xff08;Cheat software 或 Hacks&#xff09; 的本质是一种未经授权的软件&#xff0c;它通过修改或干预正常软件、游戏或系统的运行方式来提供给用户不公平的优势或功能。外挂的实现方法多种多样&#xff0c;其中一种…

Unity 让角色动起来(动画控制器)

下载素材&#xff1a; 导入后&#xff0c;找到预制体和动画。 新建动画控制器&#xff0c;拖动到预制体的新版动画组件上。 建立动画关系 创建脚本&#xff0c;挂载到预制体上。 using System.Collections; using System.Collections.Generic; using UnityEngine;public c…

Swift SwiftUI 学习笔记 2024

Swift SwiftUI 学习笔记 2024 一、资源 视频资源 StanfordUnivercity 公开课 2023: https://cs193p.sites.stanford.edu/2023 教程 Swift 初识&#xff1a;基础语法&#xff1a;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/…

工地安全反光衣穿戴监测报警摄像机

工地安全反光衣穿戴监测报警摄像机是为了提高工地施工人员的安全意识和监管效率而设计的。这种设备结合了反光衣、监测系统和报警摄像机的功能&#xff0c;可以有效减少工地事故的发生。 首先&#xff0c;工地安全反光衣是一种具有高度可见度的服装&#xff0c;能够使穿戴者在夜…

SpringBoot如何修改pom依赖的默认版本号

1、找到SpringBoot父工程依赖。 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version> </parent>2、ctrl 鼠标左键点击<artifact…

程序如何知道mqtt设备是否在线

在做物联网设备的时候经常会碰到设备的在线与掉线 问题&#xff1a;emqx如何来实现这个在线与掉线 实现&#xff1a;添加一个规则&#xff0c;程序监控这个规则 1、SELECT * FROM "$events/client_connected", "$events/client_disconnected" 2、添加一…

全量知识系统的完整设计考虑和规划 之序 内容规划

一个隐形的九宫格 规划的内容 根据前面关于因子分析、知识表征和结构特征等个方面和智能聊天工具的沟通和分析&#xff0c;我重新梳理了一下&#xff0c;对全量知识系统运营的组织结构及其组织层次和组织模式 的设计&#xff0c;得出一个大致的内容框架。如下&#xff1a; 知…

离散数学——(4)

目录 1.主析取范式 2.大项 3.主合区范式 4.范式的求法 真值表法 5.推理理论 直接证法 1.主析取范式 2.大项 3.主合区范式 4.范式的求法 真值表法 5.推理理论 直接证法

【C++】手把手教你模拟实现 vector

目录 一、构造/析构/拷贝 1、构造函数 1️⃣无参的构造函数 2️⃣带参的构造函数 3️⃣类模板的构造函数 2、析构函数 3、拷贝构造 二、修改操作 1、reserve 【错误版本】 &#x1f31f;【解答】正确版本 2、resize 3、push_back 4、pop_back 5、insert 6、era…

pytorch(六、七)多维特征数据的输入、加载数据集的类

文章目录 多维特征数据的输入代码 加载数据集概念np.loadtxt()读取数据dataloadertorchvision获取数据集代码 三种梯度下降批量梯度下降BGD随机梯度下降SGD小批量随机梯度下降MBGD代码 多维特征数据的输入 对于一个多维数据&#xff0c;其行表示一个样本&#xff0c;列表示样本…