如何将libproxy开发与现有的cmake项目(C+;+;)链接? 我不是C++编码专家。有一个任务,我必须使用“libproxy dev”自动检测代理
在我的ubuntu 18系统中安装了“libproxy dev”: sudo apt get安装libproxy dev如何将libproxy开发与现有的cmake项目(C+;+;)链接? 我不是C++编码专家。有一个任务,我必须使用“libproxy dev”自动检测代理,c++,makefile,cmake,ubuntu-18.04,C++,Makefile,Cmake,Ubuntu 18.04,在我的ubuntu 18系统中安装了“libproxy dev”: sudo apt get安装libproxy dev 导入的代理.h:#包括 试图创建pxProxyFactory的对象 pxProxyFactory*pf=px_proxy_factory_new() 尝试生成时出错 未定义对“px\U代理\U工厂\U新”的引用 我的问题:我在如何将libproxy链接到cmake项目上犯了错误吗?我必须添加/更改我的CMakeLists.txt吗?简短回答 您无法将正确的部门添加到项目中。我
我的问题:我在如何将libproxy链接到cmake项目上犯了错误吗?我必须添加/更改我的CMakeLists.txt吗?简短回答 您无法将正确的部门添加到项目中。我假设您必须在
CMakeLists.txt
中添加类似于此的命令:
target_link_libraries(your_target_name proxy)
长答案 我用这个内容创建了一个
main.cpp
#include <iostream>
#include <proxy.h>
int main(int argc, char **argv)
{
std::cout << "Hi" << std::endl;
pxProxyFactory *px = px_proxy_factory_new();
return 0;
}
现在运行cmake-G“Unix生成文件”&&make
,我会收到与您相同的错误消息:main.cpp:(.text+0x38):未定义对“px\u代理\u工厂\u新”的引用。
现在在最后添加target\u link\u库时
,我可以编译我的小程序:
cmake_minimum_required(VERSION 3.10)
project(proxy_ex1)
set(MY_SOURCES main.cpp)
add_executable(${PROJECT_NAME} ${MY_SOURCES})
target_link_libraries(${PROJECT_NAME} proxy)
现在我可以用
cmake-G“Unix Makefiles”编译我的程序了制作
这些链接可能会有所帮助:,“我必须添加/更改我的CMakeLists.txt吗?”-如果不查看它,很难说你的CMakeLists.txt有什么问题……是的,但通常需要做什么样的更改?假设我们有一个新项目,我们唯一想做的就是在这个新项目中创建上面提到的对象。我们的CMakeLists.txt应该是什么样子?您需要链接到您使用的库。在CMake中,这是通过命令执行的。几乎所有的CMake教程都描述了如何链接。请注意,libproxy dev
是一个包名,而不是库。库名为libproxy
,在有关使用此库的指南中应明确指出这一点。
cmake_minimum_required(VERSION 3.10)
project(proxy_ex1)
set(MY_SOURCES main.cpp)
add_executable(${PROJECT_NAME} ${MY_SOURCES})
target_link_libraries(${PROJECT_NAME} proxy)