我正試圖在OS X上安裝twitcurl,並遇到了一些問題。在OS X上安裝twitcurl
首先,運行make
將返回叮鐺錯誤:ld: unknown option: -soname
。我通過從其他用戶在使用OS X類似的問題的答覆看了一下,發現以下建議:
在生成文件中的變化:
LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
到:
LDFLAGS += -rpath=$(STAGING_DIR)/usr/lib
變化:
$(CC) -shared -Wl,-soname,lib$(LIBNAME).so.1 $(LDFLAGS) -o lib$(LIBNAME).so.1.0 .o -L$(LIBRARY_DIR) -lcurl
發送至:
$(CC) -dynamiclib -shared -Wl,-install_name,lib$(LIBNAME).dylib.1 $(LDFLAGS) -o lib$(LIBNAME).dylib .o -L$(LIBRARY_DIR) -lcurl
我想這一點,但唯一的結果是另一個鐺錯誤:clang: error: unknown argument: '-rpath=/usr/lib'
邁向OS X系統上安裝twitcurl任何意見,將不勝感激。
---- ---- UPDATE
我只是希望把在一個地方所有我把,使這項工作的步驟,在任何情況下,OS X用戶遇到類似問題在未來遇到這種。我感謝Andy Piper提供的關鍵部分。
打開生成文件並替換:
LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
有:
LDFLAGS += -rpath $(STAGING_DIR)/usr/lib
和:
$(CC) -shared -Wl,-soname,lib$(LIBNAME).so.1 $(LDFLAGS) -o lib$(LIBNAME).so.1.0 .o -L$(LIBRARY_DIR) -lcurl
有:
$(CC) -dynamiclib -shared -Wl,-install_name,lib$(LIBNAME).dylib.1 $(LDFLAGS) -o lib$(LIBNAME).dylib *.o -L$(LIBRARY_DIR) -lcurl
(注意,這是從另一個OS X用戶上面給出的建議兩個字符不同)運行make後
,複製libtwitcurl.dylib
爲/usr/lib/
下載TwitterClient的(唯一的,這也是代碼示例,我可以找到)將是相同的,但編譯它或您自己的程序,您將需要鏈接-lcurl
以及。 (g++ appname.cpp -ltwitcurl -lcurl
)
最後,一旦編譯程序,路徑名稱在創建的可執行文件中可能不正確。使用install_name_tool來糾正它。對我來說,這看起來像:
install_name_tool -change libtwitcurl.dylib.1 /usr/lib/libtwitcurl.dylib nameofexecutable
,但如果不爲你工作,使用otool查找實際路徑:
otool -L nameofexecutable
,然後第一個參數 - 更改後應該是libtwitcurl的錯誤路徑。運行install_name_tool後,可以再次使用otool以確保更改成功。
這些是我做的相同的修改 - 當我運行'sudo make'時,我得到了'clang:error:unknown argument:'-rpath =/usr/lib' make:*** [target] Error 1' - 如果我無法得到這個工作,我將用另一種語言工作 - 但如果可以的話,我寧願使用C++。 –
不完全相同。注意:在我的rpath之後沒有「=」,而在第二個命令中,它們是「* .o」而不是「.o」 –
也不應該(!)需要使用'sudo'來執行此操作建立。 –