所以,我有一些平台相关的代码正在使用 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'