Undefined character in Poco C ++

I precompiled a simple command line program that used Poco C ++ (by the way, I like it). The program works fine for several months.

Several things have changed on my computer, because now when I run the program, I get the following error.

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

Can someone tell me why this is happening? I compiled Poco 1.4.6 and worked with Poco 1.4.6, although for some reason Poco was not on my computer and I had to reinstall using brew install poco(I obviously do this on a Mac).

EDIT . I am not sure about this reason, but reinstalling with the option turned on --c++11fixes the problem. For instance:.

brew install poco --c++11

Perhaps the C ++ name change has changed a bit from older versions of the C ++ standard to C ++ 11?

+4
source share
1 answer

C ++ has no application binary interface. This leads to many headaches, including forcing people to recompile if they update compiler versions. The same compiler, different version, different name. This is why most libraries have a C .. interface. For historical reasons, the C interface has a stable name on all known platforms.

http://morpher.com/documentation/articles/abi/ List of C ++ ABI related issues

Grass Sutter has proposed the Stable ABI Platform for C ++. So help can be on the way :-)

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4028.pdf

+1

All Articles