2017-04-23 203 views
0

我試圖編譯使用gcc與MAC OS -lnsl選擇我的C套接字編程文件,但它給了我這個錯誤:GCC -lnsl錯誤在Mac OS

ld: library not found for -lnsl

clang: error: linker command failed with exit code 1 (use -v to see invocation)

這是GCC命令:

gcc -o server -lnsl server.c 

我看了整個互聯網,但我找不到有關幫助我。如何安裝缺失的庫?或者我應該重新安裝gcc?請幫忙!

謝謝!

+0

'nsl'庫可能不存在於所有系統上。它的功能可以在其他庫中。 –

+0

那麼我怎樣才能在mac os上使用套接字編程?我應該使用什麼選項?我需要使用的#include 的#include的中 #包括在 的#include 的#include 的#include Overflower

+0

你有沒有試過*不*鏈接與圖書館?您使用的功能的macOS手冊頁是否說明您必須擁有該庫?或者是另一個告訴你使用它的系統的其他教程? –

回答

0

Mac OS X沒有libnsl。生活在Linux上的libnsl中的函數可以在Mac OS X上的標準C庫中找到。構建使用這些函數的程序不需要額外的標誌。

如果您的程序在Linux上運行,並且在Mac上無法運行,那麼您的程序會在Mac OS X上觸發一個錯誤,但不會在Linux上觸發。沒有大量的鏈接器標誌擺弄可能會改變這一點。

+0

哦,該死的。我的錯。我修改了代碼中的一些內容,現在看起來沒有任何標誌。謝謝。 – Overflower