小编ras*_*usb的帖子

在OSX上预编译的头文件和编译通用对象

我们在项目中使用GCC预编译头文件,并按如下方式构建它们:

gcc $(CFLAGS) precompiledcommonlib.h
Run Code Online (Sandbox Code Playgroud)

现在我正在OSX 10.6上构建项目,并尝试同时使用为所有体系结构构建的漂亮功能,如下所示:

gcc $(CFLAGS) -c -arch i386 -arch x86_64 commonlib.c  
Run Code Online (Sandbox Code Playgroud)

但是,似乎这对预编译的头文件不起作用:

gcc $(CFLAGS) -arch i386 -arch x86_64 precompiledcommonlib.h
Undefined symbols for architecture i386:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/z1/z1A0sPkqGDyPrZWo9ysVK++++TI/-Tmp-//cc3W2gwd.out (No such file or …
Run Code Online (Sandbox Code Playgroud)

macos gcc x86-64 precompiled-headers

8
推荐指数
1
解决办法
2万
查看次数

两级嵌套的c ++类与GCC一起使用但与Clang失败

我在定义声明它的类之外的内部类时遇到了问题.

struct Base {
    struct A {
        struct B;
    };
    struct A::B {
    };
};
Run Code Online (Sandbox Code Playgroud)

它编译并与GCC一起工作但在Clang上失败并出现此错误:

innerclass.cpp:6:12: error: non-friend class member 'B' cannot have a qualified name
    struct A::B {
           ~~~^
Run Code Online (Sandbox Code Playgroud)

如果省略最外面的类Base,则代码适用于Clang.

以这种方式定义内部类是不合法的吗?如果是这样,应该怎么做?

平台:
OS X 10.8.3
XCode 4.6.2
Clang Apple LLVM版本4.2(clang-425.0.24)(基于LLVM 3.2svn)
GCC gcc版本4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.11. 00)

c++ macos clang nested-class

3
推荐指数
1
解决办法
1107
查看次数

标签 统计

macos ×2

c++ ×1

clang ×1

gcc ×1

nested-class ×1

precompiled-headers ×1

x86-64 ×1