[英]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.