汉扬编程 C语言入门 跨平台C语言库《cosmopolitan》,一次编译到处运行

跨平台C语言库《cosmopolitan》,一次编译到处运行

cosmopolitan库logo

跨平台C语言库《cosmopolitan》,一次编译到处运行

fast portable static native textmode containers,快速可移植的静态本地文本模式容器,这是github的简介。

Cosmopolitan使C成为一种构建即用即用的语言,类似于Java,只是它不需要事先安装解释器或虚拟机。Cosmo提供了与Go和Rust等高级语言相同的可移植性优势,但它并没有发明新的语言,您也不需要配置CI系统来为每个操作系统构建单独的二进制文件。Cosmopolitan关注的是通过将C与平台分离来修复它,因此它可以很好地用于编写小型unix程序,这些程序可以很容易地分发给更广泛的用户。

下面在Windows上编译可移植可执行文件,以windows10为例

下载gnu gcc 静态链接库 ://justine.lol/linux-compiler-on-windows/cross9.zip 和 cosmopolitan库 ://justine.lol/cosmopolitan/cosmopolitan.zip分别解压,在cosmopolitan文件夹(文件夹中有ape.lds,ape.o,cosmopolitan.a,cosmopolitan.h,crt.o)下新建hello.c// hello.c/* 不需要include内容 */main() { printf("Hello World!\\n");}编译运行源码..\\cross9\\bin\\x86_64-pc-linux-gnu-gcc.exe -g -O -o hello.com.dbg hello.c -static -fno-pie -no-pie -mno-red-zone -fno-omit-frame-pointer -nostdlib -nostdinc -Wl,–gc-sections -Wl,-z,max-page-size=0x1000 -fuse-ld=bfd -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a..\\cross9\\bin\\x86_64-pc-linux-gnu-objcopy.exe -SO binary hello.com.dbg hello.comhello.com编译后得到的的hello.com文件即可以在windows中运行,也能在Linux, Mac, FreeBSD, OpenBSD等系统中运行,据称也能在裸机上运行。

总结:

cosmopolitan才发布了0.2的版本,第一版v0.1 (2021-01-28),相关库还在不断完善中,但github单日1600+的star数值得强势关注,最底层的跨平台可能会颠覆软件行业。

C语言学习笔记总结:编译、链表、指针、标准库、时间、工具

跨平台C语言库《cosmopolitan》,一次编译到处运行

C语言入门C语言的发展历程

跨平台C语言库《cosmopolitan》,一次编译到处运行

C语言:一种高效、易学的编程语言

跨平台C语言库《cosmopolitan》,一次编译到处运行

计算机语言介绍:机器语言、汇编语言、高级语言

跨平台C语言库《cosmopolitan》,一次编译到处运行

C语言 printf 格式化输出的详细示例

跨平台C语言库《cosmopolitan》,一次编译到处运行

C语言的数据类型介绍

C语言的链表用法示例:节点的修改、增加和删除

编译编译器简介

用gcc编译C代码示例

GCC编译C语言程序的全过程

C语言的源代码文件、目标文件和可执行文件

C语言的标准库C语言的标准库介绍

C语言为什么需要有标准库

C语言为什么需要头文件

C语言 ctype.h 中的字符判断函数

C语言 string.h 中的字符串函数

C语言 math.h 中的数学函数

C语言标准库所包含的函数功能介绍(1)

C语言标准库所包含的函数功能介绍(2)

C语言标准库所包含的函数功能介绍(3)

时间函数C语言和时间有关的函数示例

C函数time和clock的计时区别

C/C++测试某段程序运行时间

UTC时间和CST时间

算法分析:时间和空间复杂度

指针和内存初识C语言指针

深入理解C语言的指针

C语言的内存分配方式:堆和栈

动态内存分配介绍

内存溢出和内存泄漏

迫不得已时使用动态内存分配的注意事项

C程序中常见的与内存相关的错误

共享内存介绍:Shared Memory

进程的抽象概念:独立控制流和私有地址空间

符号和运算符C语言中的逻辑运算符

C运算符的优先级和结合性

C语言中符号#和##的作用

C语言的位级运算:布尔代数

C语言 typedef 的两种用法

C语言文件的打开和关闭

二进制计算机为什么用二进制和十六进制

十进制小数如何转换为二进制

其他程序员写代码的好习惯

编写高效程序的要点

程序员要守住的六条原则

计算机编程学习书籍推荐

程序员必备注释模板:佛祖保佑,永无Bug

工具相关Vim快速入门学习笔记

终端神器:Tmux入门操作

Git 常用命令

Linux下好用的shell:替代bash的zsh

学习笔记Matlab学习总结:从入门到离不开

学习笔记:深入了解计算机系统

学习笔记:无人驾驶系统的研发

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6763.html

三天学会C语言编程|上篇

怎么学C语言,小数在内存中怎么存储,你以为是只是教科书那些?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部