如何改变Linux在C99模式下编译?

svmlkihl  于 2023-01-08  发布在  Linux
关注(0)|答案(4)|浏览(615)

我需要将编译模式更改为C99,有什么方法可以做到吗?
我使用的是vim,所以它根本不是IDE。

tjrkku2a

tjrkku2a1#

我假设您使用gcc。使用-std=c99标志。

h9a6wy2h

h9a6wy2h2#

任何POSIX兼容系统都应该有一个名为c99的编译器前端,在Linux上,这通常只是一个将必要选项设置为gcc的 Package 器。
如果必须将其传递给make,可以在命令行中将其传递给CC=c99,或者可以在bashrc(或等效代码)中添加一行

export CC=c99
vu8f3i0k

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也可以做到这一点.

rdrgkggo

rdrgkggo4#

导出CFLAGS ='-std=c99' && make $程序

相关问题