Ранее я скомпилировал простую программу командной строки, которая использовала Poco C++ (который, кстати, мне очень нравится). Программа отлично работала несколько месяцев.
На моем компьютере должно было измениться несколько вещей, потому что теперь, когда я запускаю программу, я получаю следующую ошибку.
dyld: Symbol not found: __ZN4Poco4Util11Application12handleOptionERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_
Referenced from: /Users/me/bin/sqlmerge
Expected in: /usr/local/opt/poco/lib/libPocoUtil.16.dylib
in /Users/me/bin/sqlmerge
Может кто-нибудь сказать мне, почему это происходит? Я скомпилировал с Poco 1.4.6 и запустил с Poco 1.4.6, хотя по какой-то причине Poco отсутствовал на моем компьютере, и мне пришлось переустанавливать с brew install poco
(очевидно, я запускаю это на Mac).
EDIT: я не уверен в причине, но переустановка с включенной опцией --c++11
устраняет проблему. Например.:
brew install poco --c++11
Возможно, изменение имени С++ немного отличается от более старых версий стандарта С++ до С++ 11?