我正试图在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'来执行此操作建立。 –