Я пытался добавить заголовочный файл из другого проекта, более конкретно, MQTTClient.h из Paho MQTT.
На данный момент проект выглядит так:
- SRC /
- вкл /
- 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;
и позже:
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
Ссылка на проект, из которого я пытаюсь взять заголовок:
https://github.com/eclipse/paho.mqtt.c