首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用libprotobuf编译应用程序,函数的冲突声明

用libprotobuf编译应用程序,函数的冲突声明
EN

Stack Overflow用户
提问于 2022-07-15 18:05:15
回答 1查看 159关注 0票数 1

我试图在linux上编译一个简单的应用程序,并将其链接到协议缓冲区库中。在编译过程中,我得到了以下错误:

代码语言:javascript
运行
复制
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:176,
                 from /usr/include/stdlib.h:394,
                 from /usr/include/c++/9/cstdlib:75,
                 from /home/bdn/Programming/boost-1.79.0-amd64/include/boost/config/platform/linux.hpp:15,
                 from /home/bdn/Programming/boost-1.79.0-amd64/include/boost/config.hpp:57,
                 from /home/bdn/Programming/boost-1.79.0-amd64/include/boost/program_options/config.hpp:10,
                 from /home/bdn/Programming/boost-1.79.0-amd64/include/boost/program_options/options_description.hpp:11,
                 from /home/bdn/Programming/boost-1.79.0-amd64/include/boost/program_options.hpp:15,
                 from /home/bdn/Programming/Beaglebone/source/software/appconfig.hpp:15,
                 from /home/bdn/Programming/Beaglebone/source/software/appconfig.cpp:12:
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:98:17: error: conflicting declaration of C function ‘uint32_t google::protobuf::internal::little_endian::FromHost(uint32_t)’
   98 | inline uint32_t FromHost(uint32_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:90:17: note: previous declaration ‘uint16_t google::protobuf::internal::little_endian::FromHost(uint16_t)’
   90 | inline uint16_t FromHost(uint16_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:106:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::little_endian::FromHost(uint64_t)’
  106 | inline uint64_t FromHost(uint64_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:98:17: note: previous declaration ‘uint32_t google::protobuf::internal::little_endian::FromHost(uint32_t)’
   98 | inline uint32_t FromHost(uint32_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:106:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::little_endian::FromHost(uint64_t)’
  106 | inline uint64_t FromHost(uint64_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:90:17: note: previous declaration ‘uint16_t google::protobuf::internal::little_endian::FromHost(uint16_t)’
   90 | inline uint16_t FromHost(uint16_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:122:17: error: conflicting declaration of C function ‘uint32_t google::protobuf::internal::little_endian::ToHost(uint32_t)’
  122 | inline uint32_t ToHost(uint32_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:114:17: note: previous declaration ‘uint16_t google::protobuf::internal::little_endian::ToHost(uint16_t)’
  114 | inline uint16_t ToHost(uint16_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:130:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::little_endian::ToHost(uint64_t)’
  130 | inline uint64_t ToHost(uint64_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:122:17: note: previous declaration ‘uint32_t google::protobuf::internal::little_endian::ToHost(uint32_t)’
  122 | inline uint32_t ToHost(uint32_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:130:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::little_endian::ToHost(uint64_t)’
  130 | inline uint64_t ToHost(uint64_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:114:17: note: previous declaration ‘uint16_t google::protobuf::internal::little_endian::ToHost(uint16_t)’
  114 | inline uint16_t ToHost(uint16_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:150:17: error: conflicting declaration of C function ‘uint32_t google::protobuf::internal::big_endian::FromHost(uint32_t)’
  150 | inline uint32_t FromHost(uint32_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:142:17: note: previous declaration ‘uint16_t google::protobuf::internal::big_endian::FromHost(uint16_t)’
  142 | inline uint16_t FromHost(uint16_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:158:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::big_endian::FromHost(uint64_t)’
  158 | inline uint64_t FromHost(uint64_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:150:17: note: previous declaration ‘uint32_t google::protobuf::internal::big_endian::FromHost(uint32_t)’
  150 | inline uint32_t FromHost(uint32_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:158:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::big_endian::FromHost(uint64_t)’
  158 | inline uint64_t FromHost(uint64_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:142:17: note: previous declaration ‘uint16_t google::protobuf::internal::big_endian::FromHost(uint16_t)’
  142 | inline uint16_t FromHost(uint16_t value) {
      |                 ^~~~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:174:17: error: conflicting declaration of C function ‘uint32_t google::protobuf::internal::big_endian::ToHost(uint32_t)’
  174 | inline uint32_t ToHost(uint32_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:166:17: note: previous declaration ‘uint16_t google::protobuf::internal::big_endian::ToHost(uint16_t)’
  166 | inline uint16_t ToHost(uint16_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:182:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::big_endian::ToHost(uint64_t)’
  182 | inline uint64_t ToHost(uint64_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:174:17: note: previous declaration ‘uint32_t google::protobuf::internal::big_endian::ToHost(uint32_t)’
  174 | inline uint32_t ToHost(uint32_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:182:17: error: conflicting declaration of C function ‘uint64_t google::protobuf::internal::big_endian::ToHost(uint64_t)’
  182 | inline uint64_t ToHost(uint64_t value) {
      |                 ^~~~~~
/home/bdn/Programming/protobuf_amd64/include/google/protobuf/endian.h:166:17: note: previous declaration ‘uint16_t google::protobuf::internal::big_endian::ToHost(uint16_t)’
  166 | inline uint16_t ToHost(uint16_t value) {
      |                 ^~~~~~
make[2]: *** [source/software/CMakeFiles/xmbedSw.dir/build.make:76: source/software/CMakeFiles/xmbedSw.dir/appconfig.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:283: source/software/CMakeFiles/xmbedSw.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

函数似乎位于endian.h .h文件中的两个单独的名称空间中。这个文件是PB头的一部分。有什么地方我需要设置一个旗帜才能通过这一切吗?我需要重建利溴布夫吗?我在9.4.0的GNU C和CXX编译器上使用了原型3.21.2版本。

EN

回答 1

Stack Overflow用户

发布于 2022-07-16 01:16:42

结果发现,一个简单的CMakeLists文件变量拼写错误是“源”和“源”的根本原因。这里的错误原因造成了导致上述错误的级联错误,从它的外观来看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72998094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档