Ошибка при связывании с библиотекой protobuf
У меня есть код C на Windows, созданный с использованием компилятора mingw64, с которым я должен связать libprotobuf.
У меня есть библиотека libprotobuf, созданная с использованием mingw64.
libprotobuf.dll
libprotobuf.dll.a
Я создал файл protobuf и скомпилировал его, используя протокол для генерации файла заголовка.
ProtoDemo.pb.cc
ProtoDemo.pb.h
ProtoDemo.proto
Чтобы связать libprotobuf с кодом c, мы сначала создадим библиотеку сгенерированного libprotoc файла заголовка, а затем свяжем ее с нашим кодом.
Я пытаюсь создать библиотеку из трех вышеупомянутых файлов с помощью CMakelist
cmake_minimum_required(VERSION 3.0.2)
project(protobin VERSION 3.4.5)
set (${PROJECT_NAME}_sources ProtoDemo.pb.cc)
set (${PROJECT_NAME}_public_header ProtoDemo.pb.h)
set (${PROJECT_NAME}_private_header ProtoDemo.proto)
if(WIN32)
add_definitions (-DWIN32)
else(WIN32)
add_compile_options("-std=c++11")
endif(WIN32)
add_library (${PROJECT_NAME} SHARED
${${PROJECT_NAME}_sources}
${${PROJECT_NAME}_public_header}
${${PROJECT_NAME}_private_header})
IF(WIN32)
target_link_libraries(${PROJECT_NAME} libprotobuf)
ELSE()
target_link_libraries(${PROJECT_NAME} libprotobuf)
ENDIF(WIN32)
Но это не создает никакой библиотеки и не дает никаких ошибок. Он просто создает папку с именем protobin.dir. target_link_libraries не дает никаких ошибок.
В чем проблема с cmakelists.txt и как сгенерировать библиотеку?