CMakeLists: Z3Config.cmake не найден - PullRequest
0 голосов
/ 11 июля 2019

Я собрал последнюю версию Z3 (https://github.com/Z3Prover/z3) с использованием make и GCC без проблем в системе Ubuntu.

Однако я получил следующее сообщение об ошибке при попытке создать небольшой проект C, использующий API Z3:

CMake Error at CMakeLists.txt:9 (find_package):
  By not providing "FindZ3.cmake" in CMAKE_MODULE_PATH this project has asked
  CMake to find a package configuration file provided by "Z3", but CMake did
  not find one.

  Could not find a package configuration file provided by "Z3" with any of
  the following names:

    Z3Config.cmake
    z3-config.cmake

  Add the installation prefix of "Z3" to CMAKE_PREFIX_PATH or set "Z3_DIR" to
  a directory containing one of the above files.  If "Z3" provides a separate
  development package or SDK, be sure it has been installed.

Файл CMakeLists.txt выглядит следующим образом:

cmake_minimum_required(VERSION 3.14)
project(Z3APITest C CXX)

set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_EXTENSIONS OFF)


find_package(Z3 REQUIRED CONFIG /home/roscai/Documents/Tools/Z3/cmake)
message(STATUS "Z3_FOUND: ${Z3_FOUND}")
message(STATUS "Found Z3 ${Z3_VERSION_STRING}")
message(STATUS "Z3_DIR: ${Z3_DIR}")


add_executable(Z3APITest EXCLUDE_FROM ALL main.c)


option(FORCE_CXX_LINKER "Force linker with C++ linker" OFF)
if (FORCE_CXX_LINKER)
    # This is a hack for avoiding UBSan linking errors
    message(STATUS "Forcing use of C++ linker")
    set_target_properties(c_example
            PROPERTIES
            LINKER_LANGUAGE CXX
            )
endif()

include_directories("${Z3_C_INCLUDE_DIR}")
include_directories("${Z3_INCLUDE_DIR}")

target_link_libraries(c_example PRIVATE ${Z3_LIBRARIES})
target_include_directories(c_example PRIVATE ${Z3_C_INCLUDE_DIRS})

UPDATE:

После исправления типа в коде я получил следующую ошибку:

 CMake Error at CMakeLists.txt:9 (find_package):
  find_package called with invalid argument
  "/home/roscai/Documents/Tools/Z3/cmake"


-- Z3_FOUND: 
-- Found Z3 
-- Z3_DIR: Z3_DIR-NOTFOUND
CMake Error at CMakeLists.txt:31 (target_link_libraries):
  Cannot specify link libraries for target "c_example" which is not built by
  this project. 

Я ценю любую идею, как решить этот вопрос.

Спасибо!

...