链接到protobuf库失败

问题描述

我有一个使用mingw64编译器构建的Windows代码C,必须链接libprotobuf。

我有使用mingw64构建的libprotobuf dll。

  libprotobuf.dll
  libprotobuf.dll.a

我已经创建了一个protobuf文件,并使用protoc对其进行了编译以生成文件

  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有什么问题以及如何生成库?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...