У меня возникли проблемы компиляции простой программы C++ 11 с помощью библиотеки Bluez:Может ли программа C++ 11 использовать BlueZ?
#include <bluetooth/bluetooth.h>
int main() {}
Compiling это с g++ -std=c++11 main.cpp
на моей Fedora 21 коробки дает:
In file included from ../scale.cpp:1:0:
/usr/include/bluetooth/bluetooth.h: In function ‘uint64_t bt_get_le64(const void*)’:
/usr/include/bluetooth/bluetooth.h:177:9: error: expected identifier before ‘*’ token
return bt_get_unaligned((const uint64_t *) ptr);
^
...
Это с BlueZ версией 5.23 и GCC 4.9.2. Все работает, если я удалю флаг -std=c++11
.
Это нормально?
попробовать '-std = гну ++ 11' – sjdowling
Там нет GCC 5.9.2 , Он отлично работает на debian с той же версией bluez и gcc-4.9.2. –
Спасибо @sjdowling и @MarcGlisse. Версия GCC исправлена, и '' '-std = gnu ++ 11''' компилируется просто отлично. Однако я не понимаю, почему. –