NeD*_*ark 9 c++ mysql database wrapper soci
我正在尝试在我的程序中实现社交,但我不知道如何.我在Linux上使用C++,在使用netbeans的项目上.我按照以下步骤操作:http://soci.sourceforge.net/doc/structure.html进行安装,我尝试从/ src/core和soci-mysql.h中复制文件soci.h/backends/mysql在我的项目中,但它给出了编译错误(这些文件包含其他社会文件,但将所有文件复制到目录中是不合逻辑的......).我已经读了好几次指南,但我不明白我做错了什么.示例仅包含这些文件.
谢谢.
编辑:我在答案下方的评论中提供了更多信息.我不知道我必须遵循哪些步骤来实施社会.
该页面上的相关位是
当configure脚本在没有参数的情况下运行时,该进程的剩余部分将
/usr/local/include/soci用作SOCI头文件/usr/local/lib的默认目标,并作为库文件的默认目标
现在/ usr/local/include应该在你的默认包含路径中(例如尝试gcc -c -v -x c++ /dev/null -o /dev/null查看你的安装使用的列表),这样你就可以使用它们了
#include <soci/soci.h>
#include <soci/soci-mysql.h>
然后,您需要将库添加到链接步骤.看起来您将拥有库的静态版本和共享版本.您需要添加-lsoci_core -lsoci_mysql到链接步骤; 但是,如果这不起作用,那么你还需要指定/ usr/local/lib作为搜索目录,即-L/usr/local/lib -lsoci_core -lsoci_mysql.(再次它可能已经存在,但你可以看到使用gcc -print-search-dirs.)然而,问题是,如果你使用的是共享版本,/ usr/local/lib不在你的发行版库搜索路径中(参见/ etc/ld) .so.conf和/或/etc/ld.so.conf.d/*)然后它将无法在运行时找到共享库.您需要使用链接器开关对库的路径进行硬编码,-rpath或者像以前或在您的环境(变量LD_LIBRARY_PATH)中一样将/ usr/local/lib添加到系统范围的搜索路径中.我不确定最好的方法是什么 - 我建议-rpath一般不要修改系统,虽然如果你在/ usr/local/lib中构建了很多库,那么添加它可能是有意义的.