C: Difference between revisions

From ArchWiki
m (add ru link)
(→‎Static code analyzers: Added ikos Static analyzer)
 
(2 intermediate revisions by one other user not shown)
Line 20: Line 20:


* {{App|[[Wikipedia:Cppcheck|Cppcheck]]|A tool for static C/C++ code analysis.|http://cppcheck.sourceforge.net/|{{Pkg|cppcheck}}}}
* {{App|[[Wikipedia:Cppcheck|Cppcheck]]|A tool for static C/C++ code analysis.|http://cppcheck.sourceforge.net/|{{Pkg|cppcheck}}}}
* [[Clang]] has the ''scan-build'' static analyzer.
* {{App|[[Wikipedia:Splint (programming tool)|Splint]]|A tool for statically checking C programs for security vulnerabilities and coding mistakes.|https://repo.or.cz/splint-patched.git|{{Pkg|splint}}}}
* {{App|[[Wikipedia:Splint (programming tool)|Splint]]|A tool for statically checking C programs for security vulnerabilities and coding mistakes.|https://repo.or.cz/splint-patched.git|{{Pkg|splint}}}}
* [[Clang]] has the ''scan-build'' static analyzer.
* {{App|ikos|Static analyzer for C and C++ developed by NASA|https://github.com/NASA-SW-VnV/ikos|{{AUR|ikos}}}}


== Alternative compilers ==
== Alternative compilers ==
Line 28: Line 29:
* {{App|[[Wikipedia:Amsterdam Compiler Kit|ACK]]|Amsterdam Compiler Kit.|http://tack.sourceforge.net/|{{AUR|ack-git}}}}
* {{App|[[Wikipedia:Amsterdam Compiler Kit|ACK]]|Amsterdam Compiler Kit.|http://tack.sourceforge.net/|{{AUR|ack-git}}}}
* {{App|[[Wikipedia:Portable C Compiler|PCC]]|Portable C Compiler.|http://pcc.ludd.ltu.se/|{{AUR|pcc}}}}
* {{App|[[Wikipedia:Portable C Compiler|PCC]]|Portable C Compiler.|http://pcc.ludd.ltu.se/|{{AUR|pcc}}}}
* {{App|[[Wikipedia:Small Device C Compiler|SDCC]]|Retargettable ANSI C compiler.|http://sdcc.sourceforge.net/|{{Pkg|sdcc}}}}
* {{App|[[Wikipedia:Small Device C Compiler|SDCC]]|Retargettable ANSI C compiler.|https://sdcc.sourceforge.net/|{{Pkg|sdcc}}}}


See also [[Wikipedia:List of compilers#C compilers]].
See also [[Wikipedia:List of compilers#C compilers]].
Line 34: Line 35:
== Alternative libc implementations ==
== Alternative libc implementations ==


* {{App|[[Wikipedia:dietlibc|dietlibc]]|a libc optimized for small size|https://www.fefe.de/dietlibc/|{{Pkg|dietlibc}}}}
* {{App|[[Wikipedia:dietlibc|dietlibc]]|a libc optimized for small size|https://www.fefe.de/dietlibc/|{{AUR|dietlibc}}}}


* {{App|[[Wikipedia:musl|musl]]|Lightweight implementation of C standard library.|https://musl.libc.org/|{{Pkg|musl}}}}
* {{App|[[Wikipedia:musl|musl]]|Lightweight implementation of C standard library.|https://musl.libc.org/|{{Pkg|musl}}}}

Latest revision as of 16:44, 10 July 2023

The Linux kernel and the GNU userland are written primarily in C.

Arch Linux uses the GNU C Library (glibc) as the C standard library; it is a dependency of the base meta package.

You can use the GNU toolchain or the LLVM toolchain to develop software in C, C++ or Objective-C.

Useful tools

  • Valgrind — Tool to help find memory-management problems in programs.
https://valgrind.org/ || valgrind
  • distcc — Distributed compiling GCC front-end.
https://github.com/distcc/distcc || distcc
  • rr — Lightweight recording and deterministic debugging tool for C/C++, uses GDB.
https://rr-project.org/ || rrAUR

Static code analyzers

  • Cppcheck — A tool for static C/C++ code analysis.
http://cppcheck.sourceforge.net/ || cppcheck
  • Clang has the scan-build static analyzer.
  • Splint — A tool for statically checking C programs for security vulnerabilities and coding mistakes.
https://repo.or.cz/splint-patched.git || splint
  • ikos — Static analyzer for C and C++ developed by NASA
https://github.com/NASA-SW-VnV/ikos || ikosAUR

Alternative compilers

  • TCC — Tiny C Compiler, claims to be faster than GCC.
https://bellard.org/tcc/ || tcc
  • ACK — Amsterdam Compiler Kit.
http://tack.sourceforge.net/ || ack-gitAUR
  • PCC — Portable C Compiler.
http://pcc.ludd.ltu.se/ || pccAUR
  • SDCC — Retargettable ANSI C compiler.
https://sdcc.sourceforge.net/ || sdcc

See also Wikipedia:List of compilers#C compilers.

Alternative libc implementations

  • dietlibc — a libc optimized for small size
https://www.fefe.de/dietlibc/ || dietlibcAUR
  • musl — Lightweight implementation of C standard library.
https://musl.libc.org/ || musl

Libraries

  • FFmpeg - includes libav, the audio and video library (not to be confused with the FFmpeg fork of the same name).
  • GLib — Low-level system library by GNOME, includes GObject and GIO.
https://wiki.gnome.org/Projects/GLib || glib2
  • GStreamer – pipeline-based multimedia framework

See also:

See also