我正在尝试使用 gedit 或 sublime text(我更喜欢这两种方式)用 C 编写一个基本程序,但无论我在尝试编译或运行时做什么,甚至在编写时,我都无法选择使用“stdio.h”或任何类似的包。即使我开始输入,#include <st
sublime 建议的唯一单词补全也是“struct”。
我已阅读了数十个帖子,但都通过安装解决了这个问题gcc
,我尝试重新安装多次,但没有成功。
这是的输出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) `
这是代码:
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
当我使用 进行编译时gcc
,我什么也没有得到,至少没有错误。但是当我尝试使用 运行时,./hello.c
这就是我得到的。
答案1
gcc 默认创建一个名为 a.out 的可执行文件。请运行该文件。
或者,创建一个合理命名的可执行文件:
gcc -o hello hello.c
更简单的是,使用make 内置的默认规则:
make hello
答案2
您需要安装相应的软件包,其中包含标题(通常libc6-dev
)
sudo apt-get install libc6-dev
并且一定要build-essential
安装
sudo apt-get install build-essential
然后hello.c
使用以下命令编译你的:
gcc hello.c -o hello
并运行它:
./hello