在 OS X 上安装 twitcurl
Installing twitcurl on OS X
我正在尝试在OS X上安装twitcurl,遇到了一些问题。
起初,运行 make
会返回 clang 错误: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的建议将不胜感激。
----更新----
我只是想把我为完成这项工作而采取的所有步骤放在一个地方,以防将来遇到类似问题的任何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用户给出的建议不同两个字符)
运行生成后,将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
然后 -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实用程序。为此,我必须以符号方式将libtwitcurl.dylib链接为libtwitcurl.dylib.1,并更改代码中的使用者密钥和密钥,以匹配我帐户 apps.twitter.com 的有效密钥和密钥。工作正常。
我假设您想从代码中使用 twitcurl 库?Twitter维护着一个基于Ruby的实用程序twurl,它具有类似的功能,也可能有用。
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++:如何在CLion IDE中安装Boost
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 有人安装"IITB Simplecpp in mac"吗?
- 我可以在 Arduino 的库文件夹之外安装库吗?
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- 安装 libc++ 时出现问题
- 安装MinGW后C++编译器不起作用?
- 介子复制/安装头文件到输出目录并保持文件夹结构
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 检查是否安装了 windows10 C++
- 安装 psutil 和为 pypy 配置期间出错
- 如何在 Debian 10 上安装 CPP 手册页?
- 如何更改使用 CPack 安装的可执行文件的名称?
- 使用 MinGW 在 Windows 上安装 GMP 时出错
- 在 OS X 上安装 twitcurl