在 OS X 上安装 twitcurl
Installing twitcurl on OS X
我正在尝试在 OS X 上安装 twitcurl,但遇到了一些问题。
起初,运行 make
会 return clang 错误:ld: unknown option: -soname
。我查看了 OS X 上其他有类似问题的用户的回复,发现了以下建议:
在 makefile 中,更改:
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 错误:clang: error: unknown argument: '-rpath=/usr/lib'
任何关于在 OS X 系统上安装 twitcurl 的建议将不胜感激。
----更新----
我只是想把我为完成这项工作所采取的所有步骤放在一个地方,以防任何 OS X 用户将来遇到类似问题。感谢 Andy Piper 提供的关键部分。
打开 makefile 并替换:
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 用户在上面给出的建议有两个字符的不同)
在运行制作之后,将libtwitcurl.dylib
复制到/usr/lib/
下载 twitterClient(这也是我能找到的唯一代码示例)将是相同的,但要编译它或您自己的程序,您还需要 link -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
然后 -change 之后的第一个参数应该是 libtwitcurl 的错误路径。 运行 install_name_tool 之后可以再次使用otool来确认修改成功。
我可以编译共享/动态库,但需要对您的 Makefile 进行一些调整:
LDFLAGS += -rpath $(STAGING_DIR)/usr/lib
和
$(CC) -dynamiclib -shared -Wl,-install_name,lib$(LIBNAME).dylib.1 $(LDFLAGS) -o lib$(LIBNAME).dylib *.o -L$(LIBRARY_DIR) -lcurl
我现在还构建了关联的 twitterClient 实用程序。为此,我必须象征性地 link libtwitcurl.dylib 为 libtwitcurl.dylib.1 并且还更改代码中的消费者密钥和秘密以匹配我的 apps.twitter.com 中的有效密钥帐户。工作正常。
我假设您想从代码中使用 twitcurl 库? Twitter 维护着一个基于 Ruby 的实用程序 twurl,它具有类似的功能并且可能也很有用。
我正在尝试在 OS X 上安装 twitcurl,但遇到了一些问题。
起初,运行 make
会 return clang 错误:ld: unknown option: -soname
。我查看了 OS X 上其他有类似问题的用户的回复,发现了以下建议:
在 makefile 中,更改:
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 错误:clang: error: unknown argument: '-rpath=/usr/lib'
任何关于在 OS X 系统上安装 twitcurl 的建议将不胜感激。
----更新----
我只是想把我为完成这项工作所采取的所有步骤放在一个地方,以防任何 OS X 用户将来遇到类似问题。感谢 Andy Piper 提供的关键部分。
打开 makefile 并替换:
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 用户在上面给出的建议有两个字符的不同)
在运行制作之后,将libtwitcurl.dylib
复制到/usr/lib/
下载 twitterClient(这也是我能找到的唯一代码示例)将是相同的,但要编译它或您自己的程序,您还需要 link -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
然后 -change 之后的第一个参数应该是 libtwitcurl 的错误路径。 运行 install_name_tool 之后可以再次使用otool来确认修改成功。
我可以编译共享/动态库,但需要对您的 Makefile 进行一些调整:
LDFLAGS += -rpath $(STAGING_DIR)/usr/lib
和
$(CC) -dynamiclib -shared -Wl,-install_name,lib$(LIBNAME).dylib.1 $(LDFLAGS) -o lib$(LIBNAME).dylib *.o -L$(LIBRARY_DIR) -lcurl
我现在还构建了关联的 twitterClient 实用程序。为此,我必须象征性地 link libtwitcurl.dylib 为 libtwitcurl.dylib.1 并且还更改代码中的消费者密钥和秘密以匹配我的 apps.twitter.com 中的有效密钥帐户。工作正常。
我假设您想从代码中使用 twitcurl 库? Twitter 维护着一个基于 Ruby 的实用程序 twurl,它具有类似的功能并且可能也很有用。