Ошибка при связывании с библиотекой 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 и как сгенерировать библиотеку?

0 ответов

Другие вопросы по тегам