繁体   English   中英

包括cmakelists中已安装的库

[英]including installed libraries in cmakelists

我并不总是使用C进行编程,但是当我这样做时通常是针对微控制器的,因此请耐心等待。

我尝试对C程序进行简单的测试,然后再尝试在Matlab中为Simulink块进行编译。 我正在使用Clion作为我的IDE。 如果我在命令行上使用gcc -o listener exlcm_example_t.o listener.o 'pkg-config lcm --libs'编译,则我的程序可以正常编译。 现在,如果我尝试在IDE中进行编译,则会得到系统找不到x86等符号的信息。

我已经为包括其他库在内的人们找到了一些类似的解决方案,但是在我看来,它们似乎不起作用。 特别是,我试图包括轻量级通信和编组系统LCM ,以便进行一些进程间通信。

我在SE上从这里尝试了几种解决方案,它们通常遵循此处概述的内容。 在IDE编辑器中,如果我执行#include <lcm/lcm.h> ,则可以执行Go To -> Declaration #include <lcm/lcm.h> Go To -> Declaration ,它将带我到h文件,因此它将以某种方式找到它,而不是在我需要的位置。

根据我的阅读,如果make没有该库的模块,则需要使用自己的* .cmake文件。 我恰巧在这里找到一个。 我的目录如下所示:

MyProject:-cmake-模块-* .cmake-cmakelists.txt-main.cpp

非常感谢您的帮助。

通过使用FindLCM.cmake在原始帖子中按上述方式构建目录并使用以下cmakelists.txt文件来自我解决:

    cmake_minimum_required(VERSION 3.2)
    project(lcm_mp)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    set(SOURCE_FILES main.cpp)
    add_executable(lcm_mp ${SOURCE_FILES})
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
    find_package(LCM REQUIRED lcm)
    include_directories(${LCM_INCLUDE_DIRS})
    set(LIBS ${LIBS} ${LCM_LIBRARIES})
    target_link_libraries(lcm_mp ${LIBS})

非常感谢您对此文件进行任何改进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM