Как в cmake производит поиск библиотек в Windows?

185
11 декабря 2018, 03:20

Пишу небольшой кроссплатформенный проект на qt5 + cmake с использованием protobuf. На linux всё собирается замечательно но на windows cmake не может выполнит команду find_package(Protobuf REQUIRED). Протобуф устанавливал как указано тут. В итоге у меня есть папка с библиотекой но как мне заставить Cmake находить эту папку как источник библиотеки? Пробовал заносить пути в переменные среды под различными именами но это не помогает.

CMake скрипт:

cmake_minimum_required(VERSION 3.7)
project(untitled3)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} -std=c++17 -Wall -pthread")
# Подключаем протобуф.
find_package(Protobuf REQUIRED)
include_directories(${PROTOBUF_INCLUDE_DIRS})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Qt5Widgets REQUIRED)
include_directories(${Qt5Widgets_INCLUDES})
add_executable(${PROJECT_NAME}
    ...
    )
target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES})
qt5_use_modules(${PROJECT_NAME} Widgets Core Network)
Answer 1

ну, например можно так

if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
...........
include_directories ("d:/library/include")
link_directories( "d:/library/lib") 
...........
elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
 ..................
endif()
READ ALSO
Инструкция по запуску Tensorflow на opencv

Инструкция по запуску Tensorflow на opencv

Обучили модель tensorflow 15

144
Получить смещение из указателя на член

Получить смещение из указателя на член

Есть указатель на член, нужно получить числовое представление этого адреса, иными словами смещениеВ коде вот так:

133
Настройка отладчика под macos в QtCreator

Настройка отладчика под macos в QtCreator

Ранее пользовался Linux/Ubuntu и не было ни каких проблем с отладкой (использовался gcc + gdb)Сейчас перешел на MacOS и появилась большая проблема

122