2015-03-19 96 views
0

我是LDNS的新手。我按照它们在自述文件中显示的方法安装了ldns。我尝试过使用他们的sample code,但每当我使用g ++ file.cpp进行编译时,出现以下错误。LDNS:未定义的变量引用(C++)

在MACOS上使用Ubuntu上的虚拟盒子。

/tmp/ccxvsMSZ.o: In function `main': 
dns.cpp:(.text+0x1e): undefined reference to `ldns_dname_new_frm_str' 
dns.cpp:(.text+0x33): undefined reference to `ldns_resolver_new_frm_file' 
dns.cpp:(.text+0x56): undefined reference to `ldns_resolver_query' 
dns.cpp:(.text+0x70): undefined reference to `ldns_pkt_rr_list_by_type' 
dns.cpp:(.text+0x80): undefined reference to `ldns_rr_list_sort' 
dns.cpp:(.text+0x96): undefined reference to `ldns_rr_list_print' 
dns.cpp:(.text+0xa2): undefined reference to `ldns_rr_list_deep_free' 
dns.cpp:(.text+0xae): undefined reference to `ldns_pkt_free' 
dns.cpp:(.text+0xba): undefined reference to `ldns_resolver_deep_free' 
collect2: error: ld returned 1 exit status 

任何想法我可能做错了什么?

P.S .:在MAC上尝试运行代码,但出现以下错误。

Undefined symbols for architecture x86_64: 
    "_ldns_dname_new_frm_str", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_pkt_free", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_pkt_rr_list_by_type", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_resolver_deep_free", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_resolver_new_frm_file", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_resolver_query", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_rr_list_deep_free", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_rr_list_print", referenced from: 
     _main in dns-9f53eb.o 
    "_ldns_rr_list_sort", referenced from: 
     _main in dns-9f53eb.o 
ld: symbol(s) not found for architecture x86_64 
+0

您需要链接到包含这些符号的库。确定它的位置,以及编译器的语法是与库链接的。 – 2015-03-19 03:44:56

+0

我认为在配置和制作下载的文件时,库将被链接。不是吗? – 2015-03-19 07:22:24

+0

'g ++ file.cpp'不链接任何库 – 2015-03-19 07:25:27

回答