Я пытаюсь скомпилировать программное обеспечение на FreeBSD 9.2 и столкнулся с проблемой. Я не являюсь разработчиком на C ++ и, по-видимому, не могу найти нужную информацию в Google, но я не смог решить эту проблему.
Разработчик вставил -std = c ++ 0x в CXXFLAGS, но это не поддерживается версией g ++ во FreeBSD. Основываясь на совете, который я нашел в Google, я переключил это на c ++ 11, используя clang ++, но я все еще сталкиваюсь с этой проблемой:
clang++ -DHAVE_CONFIG_H -I. -I.. -std=c++11 -Wall -Wno-parentheses -Wno-switch -Wno-sign-compare -Wno-char-subscripts -g -O2 -MT packet_handler.o -MD -MP -MF .deps/packet_handler.Tpo -c -o packet_handler.o packet_handler.cpp
In file included from packet_handler.cpp:32:
In file included from ./packetq.h:35:
In file included from ./sql.h:52:
./variant.h:270:49: error: no member named 'hash' in namespace 'std'
case(Coltype::_bool): return std::hash<bool>()(m_val.m_bool);
У меня нет оснований полагать, что это ограничивается проблемой с std :: hash .. это просто первое, что не удалось. С другой стороны .. возможно это единственная проблема.
Я нашел много советов о том, почему лучше использовать std :: * вместо ‘use namespace’, и много советов для разработчиков о том, как правильно писать свой код, чтобы не возникало подобных проблем, но не о том, как их решать. с этим в существующем проекте. Я не в состоянии провести рефакторинг кода во всем этом проекте.
Я надеюсь, что мне здесь не хватает чего-то простого, что позволит мне скомпилировать это. Может кто-нибудь указать мне правильный документ?
Задача ещё не решена.
Других решений пока нет …