A friend who has the same problem can see it. https://groups.google.com/forum/#!searchin/capnproto/libcapnpc.a|sort:date/capnproto/_BFLFOFxLyI/tVAG-KuqUg4J
在 2019年10月13日星期日 UTC+8上午11:18:18,张小写道: > > hi Kenton: > Thank you very much. I've settled it.Splitting bazel-dependent > libraries into three libraries,It works > > best wish > whutbd > > 在 2019年10月12日星期六 UTC+8上午1:00:26,Kenton Varda写道: >> >> Hi, >> >> Sorry, I do not know how to control Bazel's linker command line order. >> Maybe it would help to define three separate cc_library rules for the three >> libraries, with the dependencies between them specified -- maybe Bazel will >> then recognize the dependency relationship and do the ordering correctly. >> But I don't know. >> >> -Kenton >> >> On Fri, Oct 11, 2019 at 8:48 AM 张小 <[email protected]> wrote: >> >>> bazel link *.a in Lexicographic order,how can I change it >>> >>> >>> bazel-out/k8-fastbuild/bin/_objs/test_capn/demo/test_capn_serialize_performance.pic.o >>> bazel-out/k8-fastbuild/bin/_objs/test_capn/demo/full_info.capnp.pic.o >>> capnp/lib/libcapnp.a >>> capnp/lib/libcapnpc.a >>> capnp/lib/libkj.a >>> -lstdc++ >>> -lm >>> >>> >>> >>> 在 2019年10月11日星期五 UTC+8下午7:12:26,张小写道: >>>> >>>> >>>> nm -C libcapnpc.a |grep SchemaLoader|grep 'get(' >>>> U capnp::SchemaLoader::get(unsigned long, >>>> capnp::schema::Brand::Reader, capnp::Schema) const >>>> >>>> nm -C libcapnp.a |grep SchemaLoader|grep 'get(' >>>> 0000000000004250 T capnp::SchemaLoader::get(unsigned long, >>>> capnp::schema::Brand::Reader, capnp::Schema) const >>>> >>>> >>>> it seems SchemaLoader::get Symbol in libcapnp.a , and in my bazel build >>>> file like this >>>> >>>> cc_library( >>>> name = 'capnp', >>>> visibility = ["//visibility:public"], >>>> hdrs = glob([ >>>> "include/capnp/*.h", >>>> "include/capnp/compat/*.h", >>>> "include/kj/*.h", >>>> "include/kj/**/*.h", >>>> ]), >>>> srcs = glob([ >>>> "lib/libcapnpc.a", >>>> "lib/libcapnp.a", >>>> "lib/libkj.a", >>>> ]), >>>> >>>> strip_include_prefix = "include", >>>> ) >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> 在 2019年10月11日星期五 UTC+8下午3:47:39,张小写道: >>>>> >>>>> Hi,Kenton: >>>>> I like capnp, I use Capn ,Link with static libraries( use .a) >>>>> Failed ,Error Like this >>>>> >>>>> ERROR: xxxxx/BUILD:6:1: Linking of rule '//:test_capn' failed (Exit 1) >>>>> capnp/lib/libcapnpc.a(schema-parser.o):schema-parser.c++:function >>>>> capnp::ParsedSchema::findNested(kj::StringPtr) const: error: undefined >>>>> reference to 'capnp::SchemaLoader::get(unsigned long, >>>>> capnp::schema::Brand::Reader, capnp::Schema) const' >>>>> >>>>> >>>>> but the libcapnpc.a has the “SchemaLoader::get” Symbol like this: >>>>> nm capnp/lib/libcapnpc.a |grep SchemaLoader|grep get >>>>> nm -C lib/libcapnpc.a |grep SchemaLoader|grep get >>>>> U capnp::SchemaLoader::get(unsigned long, >>>>> capnp::schema::Brand::Reader, capnp::Schema) const >>>>> U >>>>> capnp::SchemaLoader::getType(capnp::schema::Type::Reader, capnp::Schema) >>>>> const >>>>> U capnp::SchemaLoader::get(unsigned long, >>>>> capnp::schema::Brand::Reader, capnp::Schema) const >>>>> >>>>> >>>>> capnp/lib$ ll -rth >>>>> 总用量 8.4M >>>>> -rw-r--r-- 1 mulou mulou 1.1M 9月 27 15:08 libcapnp.a >>>>> -rw-r--r-- 1 mulou mulou 1.4M 9月 27 15:08 libcapnpc.a >>>>> -rw-r--r-- 1 mulou mulou 330K 9月 27 15:08 libcapnp-json.a >>>>> -rw-r--r-- 1 mulou mulou 2.0M 9月 27 15:08 libcapnp-rpc.a >>>>> -rw-r--r-- 1 mulou mulou 941K 9月 27 15:08 libkj.a >>>>> -rw-r--r-- 1 mulou mulou 1.2M 9月 27 15:08 libkj-async.a >>>>> -rw-r--r-- 1 mulou mulou 70K 9月 27 15:08 libkj-test.a >>>>> -rw-r--r-- 1 mulou mulou 1.5M 9月 27 15:08 libkj-http.a >>>>> >>>>> *I try to link it with dynamic libraries,it works * >>>>> >>>>> *nm -C lib-old/libcapnpc.so |grep SchemaLoader|grep get* >>>>> * U capnp::SchemaLoader::get(unsigned long, >>>>> capnp::schema::Brand::Reader, capnp::Schema) const* >>>>> * U >>>>> capnp::SchemaLoader::getType(capnp::schema::Type::Reader, capnp::Schema) >>>>> const* >>>>> >>>>> *But I want to use static libraries instead of dynamic libraries >>>>> because dynamic libraries are a little cumbersome to deploy. * >>>>> >>>>> *I install the capn **libraries** like this :* >>>>> >>>>> curl -O https://capnproto.org/capnproto-c++-0.7.0.tar.gz tar zxf >>>>> capnproto-c++-0.7.0.tar.gz cd capnproto-c++-0.7.0 ./configure make -j6 >>>>> check sudo make install >>>>> >>>>> All the best >>>>> whutbd >>>>> >>>>> >>>>> >>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Cap'n Proto" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/capnproto/ae657a42-78cf-4903-8f76-00e186d9a256%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/capnproto/ae657a42-78cf-4903-8f76-00e186d9a256%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/98e86e41-7fb7-4c20-bacb-b9657da6ef24%40googlegroups.com.
