2

我需要一些帮助:当使用 g++ 4.1 构建我的代码时,没有关于“对类的引用不明确”的错误。仅在使用 g++4.5.2 编译相同代码时才会发生,代码片段如下:

#include "tlm_utils/simple_initiator_socket.h"

using tlm_utils::simple_initiator_socket;

class HvEcu : public sc_module {
public:
           ......
    simple_initiator_socket<HvEcu> initiator_socket;
//object instantiated here, also problem happend here....
            ......
};

我真的不确定为什么会发生这种情况,因为命名空间的语法肯定是有效的。有一个解决方法可以消除该消息,而不是“使用 tlm_utils::simple_initiator_socket;” 只需输入“tlm_utils::simple_initiator_socketinitiator_socket;” 在上面显示的类的主体中。但是我不明白为什么上面的代码不起作用,因为唯一的变化是编译器版本。

4

1 回答 1

0

尝试使用显式调用:

class HvEcu : public sc_module {
    tlm_utils::simple_initiator_socket<HvEcu> initiator_socket;

每日一课:及时了解编译器更改并使用最新的稳定版本。否则,你最终会写出旧的错误代码;并遇到编译器的其他副作用。

于 2012-11-16T00:42:01.240 回答