İbr*_*him 1 linux gcc g++ objective-c++
我gobjc
在 Ubuntu 16.04 中安装了 GNUStep 。我可以像这样编译 Objective-C 代码:
gcc codefile.m `gnustep-config --objc-flags` -lobjc -lgnustep-base -o codefile
Run Code Online (Sandbox Code Playgroud)
但我想在 GCC 中编译 Objective-C++ 代码。我该怎么做?
您的 gcc/gobjc 版本的GCC 中 objc/objc++ 方言的文档没有列出选择方言变体的特定选项。
只需使用标准的文件扩展名“.mm”或“.M”(另外你可以替换gcc
使用g++
自动添加C ++库到链接阶段;两种变型未经测试):
gcc codefile.mm `gnustep-config --objc-flags` -lobjc -lgnustep-base -o codefile
g++ codefile.mm `gnustep-config --objc-flags` -lobjc -lgnustep-base -o codefile
Run Code Online (Sandbox Code Playgroud)
ObjC++ 是“混合了 Objective-C 类和 C++ 类的简单源代码”
Gcc 将根据文件扩展名选择模式,有一个巨大的文件扩展名表和相应的语言模式,Objective-C for.m
和 Objective-C++ for .mm
/ .M
:https : //github.com/gcc-mirror/gcc/blob/gcc- 4_7_4-release/gcc/gcc.c#L913
static const struct compiler default_compilers[] =
{
/* Add lists of suffixes of known languages here. If those languages
were not present when we built the driver, we will hit these copies
and be given a more meaningful error than "file not used since
linking is not done". */
{".m", "#Objective-C", 0, 0, 0}, {".mi", "#Objective-C", 0, 0, 0},
{".mm", "#Objective-C++", 0, 0, 0}, {".M", "#Objective-C++", 0, 0, 0},
{".mii", "#Objective-C++", 0, 0, 0},
. . .
/* Next come the entries for C. */
{".c", "@c", 0, 0, 1},
Run Code Online (Sandbox Code Playgroud)
还-x
可以g++
使用允许的“objective-c++”参数手动选择语言方言(gcc -x objective-c++ ...
或g++ -x objective-c++
):https :
//github.com/gcc-mirror/gcc/blob/1cb6c2eb3b8361d850be8e8270c597270a1a7967/gcc/cp/g%2B%2B .c#L167
case OPT_x:
. . .
&& (strcmp (arg, "c++") == 0
|| strcmp (arg, "c++-cpp-output") == 0
|| strcmp (arg, "objective-c++") == 0
Run Code Online (Sandbox Code Playgroud)
它记录在https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html
Run Code Online (Sandbox Code Playgroud)-x language
为以下输入文件明确指定语言(而不是让编译器根据文件名后缀选择默认语言)。此选项适用于所有后续输入文件,直到下一个 -x 选项。语言的可能值是:
Run Code Online (Sandbox Code Playgroud)c . . . c++ . . . objective-c objective-c-header objective-c-cpp-output objective-c++ objective-c++-header objective-c++-cpp-output
归档时间: |
|
查看次数: |
4042 次 |
最近记录: |