簡體   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