簡體   English   中英

如何在ubuntu上使用Makefile編譯C程序?

[英]How can i compile C programs with Makefile on ubuntu?

我正在嘗試編譯一些我在github上找到的程序。 存儲庫位於以下URL:[在此處輸入鏈接描述] [1]

https://github.com/iagox86/nbtool

我對C程序知之甚少,但是,當我嘗試通過以下命令使用GCC時,會收到錯誤消息。 我嘗試過的命令是:

gcc -o dnslogger dnslogger.c

我收到以下錯誤:

/tmp/ccLRFQbp.o: In function `dns_callback':
dnslogger.c:(.text+0x51): undefined reference to `dns_create_from_packet'
dnslogger.c:(.text+0x5f): undefined reference to `dns_create'
dnslogger.c:(.text+0x10e): undefined reference to `dns_add_question'
dnslogger.c:(.text+0x179): undefined reference to `dns_add_answer_A'
dnslogger.c:(.text+0x1dc): undefined reference to `dns_add_answer_AAAA'
dnslogger.c:(.text+0x214): undefined reference to `dns_to_packet'
dnslogger.c:(.text+0x236): undefined reference to `udp_send'
dnslogger.c:(.text+0x260): undefined reference to `dns_create_error_string'
dnslogger.c:(.text+0x282): undefined reference to `udp_send'
dnslogger.c:(.text+0x28e): undefined reference to `safe_free'
dnslogger.c:(.text+0x29a): undefined reference to `dns_destroy'
dnslogger.c:(.text+0x2a6): undefined reference to `dns_destroy'
/tmp/ccLRFQbp.o: In function `dns_poll':
dnslogger.c:(.text+0x2d7): undefined reference to `select_group_create'
dnslogger.c:(.text+0x304): undefined reference to `select_group_add_socket'
dnslogger.c:(.text+0x321): undefined reference to `select_set_recv'
dnslogger.c:(.text+0x336): undefined reference to `select_group_do_select'
/tmp/ccLRFQbp.o: In function `cleanup':
dnslogger.c:(.text+0x36b): undefined reference to `select_group_destroy'
dnslogger.c:(.text+0x37a): undefined reference to `safe_free'
dnslogger.c:(.text+0x384): undefined reference to `print_memory'
/tmp/ccLRFQbp.o: In function `main':
dnslogger.c:(.text+0x6ed): undefined reference to `safe_malloc_internal'
dnslogger.c:(.text+0x718): undefined reference to `winsock_initialize'
dnslogger.c:(.text+0x934): undefined reference to `dns_do_test'
dnslogger.c:(.text+0xaab): undefined reference to `udp_create_socket'
dnslogger.c:(.text+0xb5f): undefined reference to `drop_privileges'
collect2: error: ld returned 1 exit status

該存儲庫中有一個Makefile文件,我懷疑它是用來編譯程序的,但是我不確定要在ubuntu上使用的確切命令,我嘗試了一些命令,但是在使用文件中提供的命令時收到錯誤。 makefile位於:

https://github.com/iagox86/nbtool/blob/master/Makefile

如何從ubuntu命令行編譯這些程序?

只需運行make

git clone https://github.com/iagox86/nbtool
cd nbtool
make

但是,您需要一些程序來編譯所有內容(樣本)。 (如果您的系統缺少它們,make將會進行投訴)

如果您對Makefile本身更感興趣,請使用注釋中的鏈接或閱讀特定的文檔,例如Gnu Make (我選擇了Gnu Make,因為標記明確指定了ubuntu)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM