Skip to content

ExplodingKonjac/This-Is-C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This-Is-C

This-Is-C 是一个由 Rust 开发的命令行工具,其作用是将二进制可执行文件转化成 C 语言代码。

应用场景之一是让你在只能使用 C 语言的 sb 课程上开心地使用其它语言。

安装方式

你需要拥有 Rust 环境和 Cargo。在项目目录下运行下面的命令:

cargo build --release

编译完成后,可执行文件会输出到 target/release/this-is-c。你可以把这个文件拷贝到其它位置,并将存放路径添加到 PATH 环境变量以方便使用。

运行 this-is-c --help 可以查看命令行选项信息。

注意事项

本项目的原理是把二进制文件内嵌到 C 代码中并通过一些系统级操作来运行它,所以会有如下的限制:

  • 仅支持 Linux 系统。
  • 目标平台的运行环境下没有对这些 syscall 的限制。
  • 你要转化的二进制文件必须和目标平台(如 OJ)兼容。为此你可能需要交叉编译
  • 二进制文件的动态链接库和目标平台兼容。你可以通过静态链接来避免这个问题。
  • 文件体积可能超过 OJ 允许的最大提交大小。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages