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