我正在尝试为我已安装的软件包编写查找模块。但我在理解 CMake 函数时遇到了困难。
\n\n这是我的代码片段。
\n\nfind_package(PkgConfig)\npkg_check_modules(PC_zcm QUIET zcm)\n\nfind_path(zcm_INCLUDE_DIR\n NAMES zcm.h\n PATHS $ENV{PATH}\n )\nmark_as_advanced(zcm_FOUND zcm_INCLUDE_DIR)\n\ninclude(FindPackageHandleStandardArgs)\nfind_package_handle_standard_args(zcm DEFAULT_MSG\n REQUIRED_VARS zcm_INCLUDE_DIR\n )\n
Run Code Online (Sandbox Code Playgroud)\n\nfind_path()
能够找到我的zcm_INCLUDE_DIR
就好了:/usr/bin/zcm/usr/local/include
但 find_package_handle_standard_args() 给出 \n-- Could NOT find zcm (missing: REQUIRED_VARS)
我的目录树如下所示:
\n\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 zcm\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 eventlog.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 json\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 json-forwards.h\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 json.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 message_tracker.hpp\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 tools\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 IndexerPlugin.hpp\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 TranscoderPlugin.hpp\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transport\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 generic_serial_transport.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transport.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transport_register.hpp\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 transport_registrar.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 url.h\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 util\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Filter.hpp\n …
Run Code Online (Sandbox Code Playgroud)