如何将 libproxy-dev 链接到现有的 cmake 项目(C++)?
How to link libproxy-dev to existing cmake project(C++)?
我不是C++编码专家。有一个任务,我必须使用"libproxy-dev"来自动检测代理。
-
在我的 Ubuntu 18 系统中安装了"libproxy-dev":sudo apt-get install libproxy-dev
-
导入代理.h :#include
- 尝试创建 pxProxyFactory 的对象pxProxyFactory *pf = px_proxy_factory_new((;
尝试构建时出现错误对"px_proxy_factory_new"的未定义引用
我的问题:我在如何将 libproxy 链接到 cmake 项目方面做错了吗?我必须添加/更改我的 CMakeLists.txt吗?
简答
您错过了向项目添加正确的 dependency 的机会。我假设您必须将这样的命令添加到您的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;
}
然后我用这个内容创建了一个CMakeLists.txt
:
cmake_minimum_required(VERSION 3.10)
project(proxy_ex1)
set(MY_SOURCES main.cpp)
add_executable(${PROJECT_NAME} ${MY_SOURCES})
现在运行cmake -G "Unix Makefiles" . && make
时,我收到与您相同的错误消息:main.cpp:(.text+0x38): undefined reference to 'px_proxy_factory_new'
现在在末尾添加target_link_libraries
时,我可以编译我的小程序:
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" . && make
编译我的程序
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- cmake在我的项目中所需的所有静态库都不成功
- 使外部项目可用于find_package CMake
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- 尝试将 boost::stacktrace 添加到 CMake 项目时出现构建错误
- 当我尝试通过 mingw 使用 CMake 和 SFML 库编译项目时出错
- 如何将我的 CMake 项目配置为运行所有单元测试?
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 智能感知不适用于Visual Studio 2017中的cmake项目
- 如何在我的项目中从 CMAKE 中的同一项目获取多个库
- 在现有的C++可执行项目CMAKE中构建Apache Arrow
- 编译/添加 cuda 代码到现有项目 (CMake)
- 将 GLEW 添加到项目 (CMake)
- SDL项目CMake构建失败
- 如何在目标项目 (cmake) 中添加不用于创建目标的文件