cmakelist 库依赖库_将第三方库添加到CMakeList

我正在尝试在arduino和运行ubuntu 14.04的计算机之间 Build 串行连接 .

有几个依赖项,我希望避免,因为我对此非常新,并希望尽可能保持基本 . 显然我不是唯一一个,项目业主已经回复了这个https://github.com/wjwwood/serial/issues/52

我在serial / examples / serial_example.cc中提供的示例中使用了CMakeLists.txt(由于限制而无法发布直接链接,但它是github)

这些是我采取的步骤

将CMakeList.txt从上面放入/ serial / library,替换原来的

将serial_example.cc放入/ serial / src /目录并将其重命名为"my_program.cpp"

打开gnome-terminal并导航到/ serial /文件夹

在终端执行"mkdir build"并输入该目录

在终端执行"cmake ../"

在终端执行“make”

[66%]内置目标串口链接CXX可执行文件my_program CMakeFiles / my_program.dir / src / my_program.cpp.o:函数 enumerate_ports()': my_program.cpp:(.text+0x32): undefined reference to serial :: list_ports()'collect2:错误:ld返回1退出状态make [2]: *** [my_program] Error 1 make1: *** [CMakeFiles / my_program.dir / all]错误2 make:*** [all]错误2

我试过用sudo运行make,但没有成功

这是“cmake ../”之后构建目录的内容

total 188

-rw-rw-r-- 1 dundua dundua 12080 maj 24 13:49 CMakeCache.txt

drwxrwxr-x 7 dundua dundua 4096 maj 24 13:51 CMakeFiles

-rw-rw-r-- 1 dundua dundua 1630 maj 24 13:49 cmake_install.cmake

-rw-rw-r-- 1 dundua dundua 162888 maj 24 13:49 libserial.a

-rw-rw-r-- 1 dundua dundua 6837 maj 24 13:49 Makefile

经过一些搜索,似乎我遇到了github, as issue #78,中描述的类似问题,并使用Code :: Blocks手动链接到另一个目录中的已编译的libserial.so似乎有效,但我想知道如何完成这没有Code :: Blocks,因为我需要将我的代码与另一个cmake项目合并

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想在自己的项目使用一个Github上的算法,该算法CMakeLists文件可以帮助你管理依赖。 在CMakeLists文件,你可以定义你的项目需要用到哪些第三方库,例如Boost、OpenCV、Eigen等等。这些可以是本地安装的,也可以是从Github或其他远程仓下载的。 对于从Github或其他远程仓下载的,你可以在CMakeLists文件使用ExternalProject_Add命令来下载和编译这些,并将它们作为依赖项链接到你的项目。 举个例子,假设你想使用一个名为"AwesomeAlgorithm"的算法,它可以从Github上下载。在你的项目的CMakeLists文件,你可以使用ExternalProject_Add命令来下载和编译: ``` include(ExternalProject) ExternalProject_Add( AwesomeAlgorithm GIT_REPOSITORY https://github.com/username/AwesomeAlgorithm.git CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} ) include_directories(${CMAKE_INSTALL_PREFIX}/include) link_directories(${CMAKE_INSTALL_PREFIX}/lib) add_executable(MyProject main.cpp) target_link_libraries(MyProject AwesomeAlgorithm) ``` 在这个例子,ExternalProject_Add命令会从Github上下载AwesomeAlgorithm,并使用CMake编译它。CMAKE_ARGS选项指定了的安装目录,以便在编译你的项目时能够找到该。然后,你可以使用include_directories和link_directories命令将的头文件和文件添加到你的项目,最后将AwesomeAlgorithm链接到你的项目。 总之,通过在CMakeLists文件定义依赖关系,你可以更方便地管理你的项目的依赖项,并确保你的项目能够正确地编译和链接所有必要的。 ### 回答2: CMake是一种跨平台的开源构建工具,用于自动化构建、测试和部署软件项目。CMakeLists文件是CMake的配置文件,用于描述项目的结构和依赖关系。 当我们在GitHub上找到一个算法CMakeLists文件时,首先需要理解它的作用。CMakeLists文件通常用于指定项目的构建规则和编译选项,以及项目所依赖和头文件路径等。算法CMakeLists文件也不例外。 在CMakeLists文件,我们会看到一些命令和指令,用于指定源文件、编译选项、链接等。具体来说,我们可以通过设置ADD_LIBRARY命令来创建一个,并将源文件添加。我们还可以使用TARGET_LINK_LIBRARIES命令来指定依赖的其他。 当CMake构建项目时,它会根据这些指令和命令来生成Makefile或其他构建脚本,用于编译和链接项目。我们只需要在终端运行CMake命令,指定CMakeLists文件所在的目录,即可开始构建项目。 对于算法来说,可能与其它存在依赖关系。例如,某个算法可能使用了数学或图形等。在CMakeLists文件,我们需要通过设置FIND_PACKAGE命令来查找这些依赖,并确保它们被正确地链接到项目。 总的来说,理解算法CMakeLists文件,可以帮助我们了解项目的结构和依赖关系,以及构建项目所需的编译选项和。通过正确配置CMakeLists文件,我们可以方便地构建和使用这个算法。 ### 回答3: CMakeLists是用于构建和管理CMake项目的文件,它包含了项目的编译选项、依赖、源文件等配置信息。依赖_github上算法CMakeLists指的是使用CMake构建在GitHub上托管的一个算法,该依赖其他的。 首先,依赖_github上算法CMakeLists会设置项目的名称、版本号等基本信息。然后,它会通过find_package命令查找和加载其他依赖,这些可能是本地已经安装的,也可以是通过ExternalProject_Add从GitHub或其他远程仓获取的。 接下来,CMakeLists会设定编译选项,如编译器标志、编译类型(Debug或Release)等。然后,它会指定源文件的路径,这些源文件包括该算法的源码以及其他相关文件。通过include_directories命令,CMakeLists将包含的头文件路径添加到项目。 之后,CMakeLists会使用add_library命令将源文件编译为静态或共享的名称和类型会在这个命令指定。如果是用C++编写的,还可以使用set_target_properties命令设置其他属性,如标准的C++版本。 最后,CMakeLists会使用target_link_libraries命令为该算法添加其他依赖,这些可以是其他本地的,也可以是从GitHub上下载的。这样,在编译和链接过程CMake会自动解析和处理这些依赖关系。 综上所述,依赖_github上算法CMakeLists用于配置和管理在GitHub上托管的算法编译过程,包括设置项目信息、依赖编译选项、源文件路径和输出等。它允许开发者方便地管理和构建项目,同时还可以自动处理依赖关系,简化了项目的搭建和维护工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值