You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/usr/bin/ld: /home//.xmake/packages/p/protobuf-cpp/27.0/3a6ae090d364400a86d45d58d50c750c/lib/libprotobuf.a(zero_copy_stream.cc.o): in function google::protobuf::io::ZeroCopyOutputStream::WriteAliasedRaw(void const*, int)': zero_copy_stream.cc:(.text.unlikely+0x0): multiple definition of google::protobuf::io::ZeroCopyOutputStream::WriteAliasedRaw(void const, int)'; /home/*/.xmake/packages/o/opencv/4.10.0/07fff2ddbc8647d392e888cc2a12d4a4/lib/opencv4/3rdparty/liblibprotobuf.a(zero_copy_stream.cc.o):zero_copy_stream.cc:(.text._ZN6google8protobuf2io20ZeroCopyOutputStream15WriteAliasedRawEPKvi+0x0): first defined here
collect2: error: ld returned 1 exit status
The text was updated successfully, but these errors were encountered:
Xmake Version
v2.9.2+HEAD.6b6557c
Operating System Version and Architecture
Ubuntu22.04
Describe Bug
同时依赖OpenCV 4.10.0 和 Protobuf 27.0的二进制目标,在链接时报错protobuf中的内容与opencv4/3rdpart/liblibprotobuf.a中定义重复。
奇怪的是 静态库和动态库都可以正常生成,只有二进制目标报错。
Expected Behavior
预期正常链接
Project Configuration
add_rules("mode.debug", "mode.release")
add_requires("gflags", "glog", "protobuf-cpp", "opencv")
add_requires("grpc", {system = false})
target("my_proto")
set_kind("static")
set_languages("c++17")
add_packages("protobuf-cpp", {public = true})
add_packages("grpc")
add_rules("protobuf.cpp")
add_files("protos/*.proto", {proto_public = true, proto_grpc_cpp_plugin = true})
target("test_proj")
set_kind("binary")
add_packages("gflags", "glog", "protobuf-cpp", "opencv")
add_deps("my_proto")
add_files("src/**.cpp")
add_includedirs("./")
Additional Information and Error Logs
/usr/bin/ld: /home//.xmake/packages/p/protobuf-cpp/27.0/3a6ae090d364400a86d45d58d50c750c/lib/libprotobuf.a(zero_copy_stream.cc.o): in function
google::protobuf::io::ZeroCopyOutputStream::WriteAliasedRaw(void const*, int)': zero_copy_stream.cc:(.text.unlikely+0x0): multiple definition of
google::protobuf::io::ZeroCopyOutputStream::WriteAliasedRaw(void const, int)'; /home/*/.xmake/packages/o/opencv/4.10.0/07fff2ddbc8647d392e888cc2a12d4a4/lib/opencv4/3rdparty/liblibprotobuf.a(zero_copy_stream.cc.o):zero_copy_stream.cc:(.text._ZN6google8protobuf2io20ZeroCopyOutputStream15WriteAliasedRawEPKvi+0x0): first defined herecollect2: error: ld returned 1 exit status
The text was updated successfully, but these errors were encountered: