我正在尝试使用下面的代码编译目标文件 .
//--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编译器构建目标文件?还有另一种解决方法吗?
2 回答
你会发现有许多东西可以让你逃避,sunpro会抱怨,反之亦然 .
为很多这类事做好准备 .
GMan的回答对我来说是正确的 .
尝试在该文件中
#include <A.h>
. 编译器需要知道class A
的样子 .