我正在使用 Arch Linux 并已成功构建https://github.com/JosephP91/curlcpp 但是,我不知道如何构建示例程序。我不断得到
fatal error: curl_easy.h: No such file or directory
当然,这是因为我不知道如何将其添加到路径中library/include
。
在<curlcpp root>/build/src/
文件夹里,我有一个libcurlcpp.a
文件,里面有所有的.o
文件,并且<curlcpp root>/include/
有所有.h
需要的文件。
我已经尝试了自述文件中指定的命令、尝试-I library/include
以及其他组合。
我是否需要手动将文件复制到某处或运行某些命令行应用程序以使其在系统范围内使用?
我认为ldconfig
这不是正确的程序,因为那是针对动态库的。
答案1
您使用什么确切命令来构建程序的可执行文件?
您需要告知g++
具有特定于项目的标头和库的其他目录。如果你已经libcurlcpp.a
复制到$proj_home/lib
并libcurlcpp.h
复制到$proj_home/hdr
这将是这样的:
$ g++ your_program.cpp -Ihdr -Llib -lcurlcpp -static -o your_executable
-I
指定带有标题的附加目录-L
指定带有库的附加目录-l
指定您要链接的特定库(不带lib
和.a
/.so
)-static
告诉g++
您优先选择静态库 (*.a
) 而不是动态库 (*.so
) (默认为相反)
-I
指定和的路径-L
,键和路径本身之间没有空格。类似的事情是针对-l
.
Makefile
当您找到适合您的特定命令时,相应地安排项目。
答案2
您只需复制 /usr/include 路径中提供的标头即可。不?显然,在编译源代码时不要忘记链接库。我尝试过,它就像一个魅力!