我需要将编译模式更改为C99,有什么方法可以做到吗?我使用的是vim,所以它根本不是IDE。
tjrkku2a1#
我假设您使用gcc。使用-std=c99标志。
-std=c99
h9a6wy2h2#
任何POSIX兼容系统都应该有一个名为c99的编译器前端,在Linux上,这通常只是一个将必要选项设置为gcc的 Package 器。如果必须将其传递给make,可以在命令行中将其传递给CC=c99,或者可以在bashrc(或等效代码)中添加一行
c99
gcc
make
CC=c99
export CC=c99
vu8f3i0k3#
我不知道你是如何从vim编译C代码的,但无论如何,你需要创建一个make文件并执行它来编译。你需要指定C99开关,但注意它在GCC中没有完全实现。请注意,此标准尚未得到完全支持;有关详细信息,请参阅http://gcc.gnu.org/gcc-4.4/c99status.html如果你还没有一个,我提供了一个通用的make文件,用于C作业:
# ------------------------------------------------ # Generic Makefile # # Author: Yanick Rochon # Date : 2010-11-05 # # Changelog : # 0.01 - first version # ------------------------------------------------ # project name (generate executable with this name) TARGET = <executable name here> CC = gcc -c # compiling flags here CFLAGS = -std=c99 -Wall -I. LINKER = gcc -o # linking flags here LFLAGS = -std=c99 -Wall SOURCES := $(wildcard *.c) INCLUDES := $(wildcard *.h) OBJECTS := $(SOURCES:.c=*.o) rm = rm -f $(TARGET): obj @$(LINKER) $(TARGET) $(LFLAGS) $(OBJECTS) @echo "Linking complete!" obj: $(SOURCES) $(INCLUDES) @$(CC) $(CFLAGS) $(SOURCES) @echo "Compilation complete!" clean: @$(rm) $(TARGET) $(OBJECTS) @echo "Cleanup complete!"
编辑
我通常用GEdit编辑我的C源代码,并打开一个终端(或者我使用GEdit的终端插件)来编译(使用make).你也可以使用一个成熟的IDE来编辑你的源代码,比如SharpDevelop或Anjuta,但是我发现GEdit和一个终端是我更喜欢的C开发工具.一个原因是我实际上必须自己做所有的事情(大部分),这样我才知道发生了什么:)用Vim代替GEdit也可以做到这一点.
rdrgkggo4#
导出CFLAGS ='-std=c99' && make $程序
4条答案
按热度按时间tjrkku2a1#
我假设您使用gcc。使用
-std=c99
标志。h9a6wy2h2#
任何POSIX兼容系统都应该有一个名为
c99
的编译器前端,在Linux上,这通常只是一个将必要选项设置为gcc
的 Package 器。如果必须将其传递给
make
,可以在命令行中将其传递给CC=c99
,或者可以在bashrc(或等效代码)中添加一行vu8f3i0k3#
我不知道你是如何从vim编译C代码的,但无论如何,你需要创建一个make文件并执行它来编译。你需要指定C99开关,但注意它在GCC中没有完全实现。
请注意,此标准尚未得到完全支持;有关详细信息,请参阅http://gcc.gnu.org/gcc-4.4/c99status.html
如果你还没有一个,我提供了一个通用的make文件,用于C作业:
编辑
我通常用GEdit编辑我的C源代码,并打开一个终端(或者我使用GEdit的终端插件)来编译(使用make).你也可以使用一个成熟的IDE来编辑你的源代码,比如SharpDevelop或Anjuta,但是我发现GEdit和一个终端是我更喜欢的C开发工具.一个原因是我实际上必须自己做所有的事情(大部分),这样我才知道发生了什么:)用Vim代替GEdit也可以做到这一点.
rdrgkggo4#
导出CFLAGS ='-std=c99' && make $程序