cmake 如何在macOS上安装libarchive并使编译器检测到它?

u2nhd7ah  于 8个月前  发布在  Mac
关注(0)|答案(2)|浏览(158)

我正在尝试在macOS上安装libarchive用于我的学校项目。我试着用brew公式来做,但CMake说它检测不到。如何正确安装libarchive?
我尝试的是:brew install libarchive
我在CLion得到的:

Could NOT find LibArchive (missing: LibArchive_INCLUDE_DIR)
relj7zay

relj7zay1#

正如GitHub issue post中提到的,libarchive没有安装到标准系统路径中。因此,您需要通过在CMake文件中设置以下内容来告诉CMake在哪里可以找到它:

set(LibArchive_INCLUDE_DIR "/usr/local/opt/libarchive/include")

注意,您可能必须修改此处的路径,以匹配系统上libarchive的安装位置

rggaifut

rggaifut2#

这适用于Linux、macOS和Apple芯片上的macOS。

if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    # Homebrew ships libarchive keg only, include dirs have to be set manually
    execute_process(
        COMMAND brew --prefix libarchive
        OUTPUT_VARIABLE LIBARCHIVE_PREFIX
        OUTPUT_STRIP_TRAILING_WHITESPACE
        COMMAND_ERROR_IS_FATAL ANY
    )
    set(LibArchive_INCLUDE_DIR "${LIBARCHIVE_PREFIX}/include")
endif()
find_package(LibArchive REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE LibArchive::LibArchive)

相关问题