soci库中未解决的符号错误

时间:2014-04-14 00:50:52

标签: c++ postgresql linker shared-libraries soci

我理解未解决的符号错误是什么,但我不明白为什么我会在这个特定情况下使用此特定库获取它。这是错误的输出。

Undefined symbols for architecture x86_64:
  "soci::soci_error::soci_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      soci::type_conversion<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>::from_base(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, soci::indicator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in Inspector.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请注意,我使用以下链接标记:

-L/usr/local/lib -lsoci_core -lsoci_postgresql -lpq -ldl

另请注意,正在解析对其他符号(例如soci::session构造函数和析构函数)的引用。

我做错了什么?是否还有其他社交图书馆,我也应该链接?

编辑:请注意,我正在使用Mac OS X,并尝试通过自制程序(通过brew install soci --with-pg)进行安装,以及3.2.2和3.2的独立安装。 1。

1 个答案:

答案 0 :(得分:0)

我不知道为什么这解决了这个错误,但是从libc ++改为libstdc ++解决了它。