J'essaie d'écrire un programme de base en C en utilisant gedit ou un texte sublime (ce que je préfère), mais peu importe ce que je fais lorsque j'essaie de compiler ou d'exécuter, ou même lorsque je suis en train d'écrire, je n'ai pas la possibilité d'utiliser 'stdio. h 'ou tout autre paquet similaire. Même lorsque je commence à taper #include <st
, le seul suffixe d'achèvement de Word suggère est 'struct'.
J'ai lu des dizaines de threads, mais tous ont réussi à résoudre ce problème en installant gcc
, que j'ai essayé de réinstaller plusieurs fois, sans succès.
Voici le résultat de gcc -v
:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.2.0-8ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-Arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --Host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3) `
C'est le code:
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
Quand je compile avec gcc
, je n’obtiens rien, aucune erreur du moins. mais quand j'essaie de courir en utilisant seulement ./hello.c
c'est ce que je reçois.
gcc crée un fichier exécutable appelé a.out par défaut. Exécutez ça à la place.
Vous pouvez également créer un exécutable nommé sensible:
gcc -o hello hello.c
Et encore plus simple, en utilisant le règles par défaut intégrées dans make :
make hello
Vous devez installer le package correspondant avec les en-têtes (normalement libc6-dev
) avec
Sudo apt-get install libc6-dev
Et bien sûr, installez build-essential
avec
Sudo apt-get install build-essential
Puis compilez votre hello.c
avec la commande:
gcc hello.c -o hello
et lancez-le:
./hello