我正在尝试在编译程序时链接libbson和wiredtiger库。我的程序writer.cpp
是一个包含
#include <bson.h>
#include <wiredtiger.h>
位于顶部,并使用libbson和wiredtiger中的一些函数。
我使用gcc -l wiredtiger -l bson-1.0 -I/usr/include/libbson-1.0 writer.cpp
进行编译。
但是,这会遇到一些编译错误,例如:
writer.cpp:(.text+0x1c1): undefined reference to `bson_reader_new_from_file'
writer.cpp:(.text+0xb3): undefined reference to `wiredtiger_open'
Bson_reader_new_from_file在libbson API中定义,wiredtiger_open在wiredtiger API中定义。如果链接正确,如果编译期间的链接正确,则不应该未定义。
其他一些信息:bson.h
位于/usr/include/libbson-1.0
,wiredtiger.h
位于/usr/local/include
,libbson-1.0.so
位于/usr/lib
,{{1} }在libwiredtiger.so
。
我应该如何更改编译命令,以便可以编译我的程序而不会出现问题?提前谢谢!