错误:在linux上编译代码时,'...'之前的预期类型说明符

时间:2013-10-04 10:29:22

标签: c++

所以,我有一些平台相关的代码,使用winusb或libusb在Linux和Windows上进行编译。 我使用预编译器指令来包含正确的头文件,并创建正确的接口:

#include "../path/myusbint.hpp"
#ifdef WIN32 
#include "../path/winusbint.h"
#else
#include "../path/libusbint.h"
#endif
boost::shared_ptr<myusbinerface> usbinterface;

#ifdef WIN32
    usbinterface.reset(new winusbint);
#else
    usbinterface.reset(new libusbint);
#endif

在Windows上编译很好,但在Linux(gcc)上我得到错误:

error: expected type-specifier before `libusbint'
error: expected ')' before `libusbint'

1 个答案:

答案 0 :(得分:3)

或许,您未向我们展示的某些代码在尚未声明的位置使用名为USBInterfaceLibUSB的类型。您需要向我们展示导致错误确实的实际代码。

如果这是正确的类型名称,那么请确保使用它的文件包括定义该类型的标头,或者如果您不需要完整定义,则包括前向声明。

如果名称错误,请将其更改为正确的名称。也许应该myusbinerface匹配您发布的代码?或者也许你在真实代码中拼写正确(myusbinterface)?

相关问题