2009-07-16 114 views
0

我正在嘗試使用以下代碼編譯目標文件。使用Sun Studio 12移植到Solaris SPARC

//--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

但對於太陽錄音室12在Solaris 10(SPARC),它輸出一個錯誤。

$ CC -c test.cpp

"test.cpp", line 7: Error: Cannot call through pointer to member function before defining class A.

1 Error(s) detected.

是否有一個編譯器標誌得到了Sun Studio C++編譯器來構建 目標文件?是否有另一種解決方法?

回答

2

嘗試到該文件中的#include <A.h>。編譯器需要知道什麼是class A

0

你會發現有很多事情g ++可以讓你逃避sunpro會抱怨,反之亦然。

準備好了很多這樣的事情。

GMan的回答對我來說很合適。