CPROC(1)

πŸ“¦ version 0.0^20240428.f66a6613, in fedora 43, fedora 44

πŸ’… CPROC β€” the C11 compiler bestie πŸ’…

okay so this is the manual page for cproc, a section 1 (General Commands) page from the Debian corner of the internet. Buckle up, we're compiling 🧚✨


🌸 NAME 🌸

cproc β€” a C11 compiler. That's it, that's the girl. πŸ‘‘


✨ SYNOPSIS ✨

cproc [options] sources...

πŸ’– DESCRIPTION πŸ’–

cproc is a C11 compiler that uses QBE as its backend. It supports ISO C11, plus some features from the upcoming C23, plus some GNU C extensions. Versatile queen. πŸ’…

When you invoke it with, like, no options at all, cproc will preprocess, compile, and link your sources..., and generate an executable a.out file. Full pipeline, main character energy. 🌈

The following options are available:

  • -c β€” Compile the sources to object files instead of linking them. (So close to a full executable, but not quite β€” it's giving "almost". 😌)
  • -D macro[=value] β€” Define macro to value, as if you did a preprocessor #define. If value isn't given, macro gets defined to 1. Defaults, slay. πŸŽ€
  • -E β€” Preprocess the input files and print the output, instead of compiling. Just the preprocessing part, no compiling. πŸ¦‹
  • -I path β€” Append path to the list of directories searched for headers. πŸ“‚
  • -L path β€” Append path to the list of directories searched for libraries. πŸ“š
  • -l library β€” Link library into the executable. If library is a relative path, it'll be searched through the compiler search paths. πŸ”
  • -o output β€” Write the output to output. By default, output goes to a.out. Or, if -c is used, the output file is determined by replacing the source file extension with .o. Or, if -E or -emit-qbe is used, the output is written to standard output. So many vibes, so many destinations. 🌟
  • -s β€” Strip the symbol table from the generated executable. Bye bye symbols πŸ‘‹
  • -U macro β€” Undefine a pre-defined macro. The reverse of -D, iconic duo. πŸ’œ
  • -v β€” Print the commands run as part of the compile pipeline. Nosy? Yes. Useful? Also yes. πŸ‘€
  • -x format β€” Force cproc to interpret subsequent source files as format. By default, cproc determines the source code language from the known file extensions. This option forces a different format, and it can be one of none, c, c-header, cpp-output, qbe, assembler, assembler-with-cpp. Pick your fighter. ⭐
  • -Wa,args..., -Wl,args..., -Wp,args... β€” For each of these options, pass additional args... to the assembler, linker, or preprocessor respectively. The list of arguments is delimited by commas. πŸ”₯

For example, -Wl,--gc-sections will forward the option --gc-sections to the linker. See? Comma-delimited, no cap.

  • -static β€” Link the executable statically. πŸ—Ώ
  • -nostdlib β€” Do not use standard library and startup files when linking. Going feral, no standard library. πŸ’€
  • -nostdinc β€” Do not search default compiler include paths when compiling. πŸ™ˆ
  • -pthread β€” This is a short hand of -lpthread. Threads, bestie. 🧡
  • -g, -O, -pipe, -pedantic β€” These options are available for compatibility with most common compilers, but they are currently ineffective. They're there for the vibes, fr fr. They don't actually do anything right now. 🫢

πŸ‘‘ AUTHORS πŸ‘‘

cproc was written by Michael Forney <mforney@mforney.org>. King behavior. πŸ’–


And that's the whole page, bestie β€” this was the CPROC(1) manual from the Debian General Commands Manual, dated $Mdocdate$. Go forth and compile something iconic. βœ¨πŸ’…πŸŒˆ

πŸ“¦ where this page comes from