【问题标题】:Porting to Solaris SPARC using Sun Studio 12使用 Sun Studio 12 移植到 Solaris SPARC
【发布时间】:2010-11-11 05:37:42
【问题描述】:

我正在尝试使用以下代码编译目标文件。

//--Begin test.cpp
class A;

void (A::* f_ptr) ();

void test() {
    A *a;
    (a->*f_ptr)();
}
//-- End test.cpp

对于 GNU g++ 编译器,它可以编译目标文件。

$ g++ -c test.cpp

但对于 Solaris 10 (SPARC) 上的 Sun Studio 12,它会输出错误。

$ CC -c test.cpp

“test.cpp”,第 7 行:错误:在定义类 A 之前无法通过指向成员函数的指针调用。

检测到 1 个错误。

是否有编译器标志可以让 Sun Studio C++ 编译器构建 目标文件?还有其他解决方法吗?

【问题讨论】:

    标签: c++


    【解决方案1】:

    尝试在该文件中使用#include <A.h>。编译器需要知道class A 的样子。

    【讨论】:

      【解决方案2】:

      您会发现 g++ 让您摆脱了 sunpro 会抱怨的很多事情,反之亦然。

      为很多此类事情做好准备。

      GMan 的答案在我看来是正确的。

      【讨论】: