Как подключить библиотеку QuaZip в CMake

Если у вас нормально фиксированное значение по умолчанию для типа, вы можете создать тип, чтобы определить его как константу и специализировать его по мере необходимости.

template <typename T> struct MyTypeDefault { static const T value; };
template <typename T> const T MyTypeDefault<T>::value = T();
template <> struct MyTypeDefault<double> { static const double value; };
const double MyTypeDefault<double>::value = 1.0;

template <typename T>
class MyType {
  public:
    MyType() { value = MyTypeDefault<T>::value; }
  private:
    T value;
 };

Если у вас есть C ++ 11, вы можете используйте constexpr при определении значения по умолчанию. С C ++ 14 MyTypeDefault может быть переменной шаблона, которая синтаксически немного чиста.

//C++14
template <typename T> constexpr T MyTypeDefault = T();
template <> constexpr double MyTypeDefault<double> = 1.0;

template <typename T>
class MyType {
  private:
    T value = MyTypeDefault<T>;
 };
0
задан dipatov 17 January 2019 в 09:12
поделиться

1 ответ

Сценарий поиска для квазипа называется FindQuaZip5.cmake (переименовывается во время установки). Так что для поиска quazip вам нужно использовать

find_package(QuaZip5)

Значение скрипта поиска описано в его главе:

# QUAZIP_FOUND               - QuaZip library was found
# QUAZIP_INCLUDE_DIR         - Path to QuaZip include dir
# QUAZIP_INCLUDE_DIRS        - Path to QuaZip and zlib include dir (combined from QUAZIP_INCLUDE_DIR + ZLIB_INCLUDE_DIR)
# QUAZIP_LIBRARIES           - List of QuaZip libraries
# QUAZIP_ZLIB_INCLUDE_DIR    - The include dir of zlib headers

То есть для использования quazip с [115 ] в своем коде добавьте эти строки:

include_directories(${QUAZIP_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${QUAZIP_LIBRARIES})
0
ответ дан Tsyvarev 17 January 2019 в 09:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: