Sun Studio 12:C++ 用户指南

2.7 简化命令

可以通过定义特殊的 shell 别名、使用 CCFLAGS 环境变量或使用 make 来简化复杂的编译器命令。

2.7.1 在 C Shell 中使用别名

以下示例为带有常用选项的命令定义了别名。


example% alias CCfx "CC -fast -xnolibmil"

以下示例使用了别名 CCfx


example% CCfx any.C

现在命令 CCfx 等效于:


example% CC -fast -xnolibmil any.C

2.7.2 使用 CCFLAGS 指定编译选项

可以通过设置 CCFLAGS 变量来指定选项。

可以在命令行中显式使用 CCFLAGS 变量。以下示例说明了如何设置 CCFLAGS (C Shell):


 example% setenv CCFLAGS ’-xO2 -xsb’

以下示例显式使用了 CCFLAGS


 example% CC $CCFLAGS any.cc

使用 make 时,如果像上述示例那样设置 CCFLAGS 变量,且 makefile 的编译规则是隐式的,那么在编译时调用 make 等效于:

CC -xO2 -xsb files...

2.7.3 使用 make

make 实用程序是功能非常强大的程序开发工具,可以方便地与所有 Sun 编译器一起使用。有关更多信息,请参见 make(1S) 手册页。

2.7.3.1 在 make 中使用 CCFLAGS

使用 makefile 的隐式编译规则时(即没有 C++ 编译行),make 程序会自动使用 CCFLAGS

2.7.3.2 为 Makefile 增加后缀

您可以将不同的文件后缀增加到 makefile 以使它们收入 C++ 中。以下示例为 C++ 文件添加有效后缀 .cpp。可将 SUFFIXES 宏添加到 makefile:

SUFFIXES: .cpp .cpp~

(此行可以放置在 makefile 的任何位置。)

将以下各行增加到 makefile。缩进的行必须以制表符开头。


.cpp:
    $(LINK.cc) -o $@ $< $(LDLIBS)
.cpp~:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(LINK.cc) -o $@ $*.cpp $(LDLIBS)
.cpp.o:
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
.cpp~.o:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
.cpp.a:
    $(COMPILE.cc) -o $% $<
    $(COMPILE.cc) -xar $@ $%
    $(RM) $%
.cpp~.a:
    $(GET) $(GFLAGS) -p $< > $*.cpp
    $(COMPILE.cc) -o $% $<
    $(COMPILE.cc) -xar $@ $%
    $(RM) $%

2.7.3.3 将 make 与标准库头文件一起使用

标准库文件 名称没有 .h 后缀,而是命名为 istreamfstream 等。此外,模板源文件命名为 istream.ccfstream.cc 等。