Как я могу включить заголовок из другого проекта, используя cmake - PullRequest
0 голосов
/ 22 января 2019

Я пытался добавить заголовочный файл из другого проекта, более конкретно, MQTTClient.h из Paho MQTT.

На данный момент проект выглядит так:

  • SRC /
    • main.c
    • CMakeLists.txt
  • вкл /
    • paho.mqtt.c-мастер /
      • CMakeLists.txt
      • SRC /
        • MQTTClient.h
        • CMakeLists.txt

В настоящее время мой CMakeList.txt выглядит так:

cmake_minimum_required(VERSION 2.8)
include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)

project(market_listener)


SET(MQTT_INCLUDE_DIR
${CMAKE_CURRENT_SOURCE_DIR}/inc/paho.mqtt.c-master)

set(MQTT
        "${MQTT_INCLUDE_DIR}"
        "${MQTT_INCLUDE_DIR}/src/MQTTClient.h"
)

INCLUDE_DIRECTORIES(${MQTT_INCLUDE_DIR}/src)
INCLUDE_DIRECTORIES(${MQTT_INCLUDE_DIR}/inc/paho.mqtt.c-master)


add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/inc/paho.mqtt.c-master)
add_executable(listener src/main.c)


install (TARGETS listener DESTINATION bin)
install (FILES "src/main.c" DESTINATION src)

Это объединение неудачных попыток, поэтому оно выглядит странно, и я тоже очень плох в этом.

Я могу cmake .., но когда я make, я получаю следующее:

E:/Projekti/C/Test_1/inc/paho.mqtt.c-master/src/Socket.c: In function 'Socket_error':
E:/Projekti/C/Test_1/inc/paho.mqtt.c-master/src/Socket.c:104:6: warning: '_errno' redeclared without dllimport attribute after being referenced with dll linkage
  int errno;

enter image description here

и позже:

E:/Projekti/C/Test_1/inc/paho.mqtt.c-master/src/Base64.c: In function 'Base64_encode':
E:/Projekti/C/Test_1/inc/paho.mqtt.c-master/src/Base64.c:36:63: error: 'CRYPT_STRING_NOCRLF' undeclared (first use in this function)
  if ( CryptBinaryToStringA( in, in_len, CRYPT_STRING_BASE64 | CRYPT_STRING_NOCRLF, out, &dw_out_len ) )

E:/Projekti/C/Test_1/inc/paho.mqtt.c-master/src/Base64.c:36:63: note: each undeclared identifier is reported only once for each function it appears in

enter image description here

Ссылка на проект, из которого я пытаюсь взять заголовок: https://github.com/eclipse/paho.mqtt.c

...