gpt4 book ai didi

c++ - 构建和使用包含覆盖功能的 pnacl-compiler-rt

转载 作者:行者123 更新时间:2023-11-28 05:30:58 27 4
gpt4 key购买 nike

我目前在使用 pnacl-compiler-rt 时遇到了一些严重的问题,因为我没有成功找到任何关于构建它的信息(在 Mac 上,这可能与NaCl 的情况)与仪器的东西(例如包括 GCDAProfiling)。我最近的尝试是修改 make/options.mk:

#Added this
FUNCTIONS := GCDAProfiling

我使用 ar -t libcompiler_rt.a 检查了库,看它是否在里面:

__.SYMDEF SORTED
GCDAProfiling.o ------------- Here it is
clzti2.o
compilerrt_fmax.o
compilerrt_fmaxf.o
compilerrt_logb.o
compilerrt_logbf.o
ctzti2.o
divdc3.o
divdi3.o
divmoddi4.o
divmodsi4.o
divsc3.o
divsi3.o
divti3.o
fixdfdi.o
fixdfsi.o
fixdfti.o
fixsfdi.o
fixsfsi.o
fixsfti.o
fixunsdfdi.o
fixunsdfsi.o
fixunsdfti.o
fixunssfdi.o
fixunssfsi.o
fixunssfti.o
floatdidf.o
floatdisf.o
floatsidf.o
floatsisf.o
floattidf.o
floattisf.o
floatundidf.o
floatundisf.o
floatunsidf.o
floatunsisf.o
floatuntidf.o
floatuntisf.o
int_util.o
moddi3.o
modsi3.o
modti3.o
muldc3.o
muloti4.o
mulsc3.o
multi3.o
popcountdi2.o
popcountsi2.o
popcountti2.o
powidf2.o
powisf2.o
udivdi3.o
udivmoddi4.o
udivmodsi4.o
udivmodti4.o
udivsi3.o
udivti3.o
umoddi3.o
umodsi3.o
umodti3.o

我已将此库复制到 pepper_49/lib/clang-newlib_x86_64/[Debug|Release] 文件夹中。

我还更新了 pepper_49 earth 示例的 Makefile 以尝试获取一些代码覆盖率数据,仅更改以下行:

VALID_TOOLCHAINS := clang-newlib
...
LIBS = ppapi_simple_cpp nacl_io sdk_util ppapi_cpp ppapi pthread compiler_rt
...
CFLAGS = --coverage -Wall

当我尝试构建时,我得到以下信息(请注意我也尝试过 64 位链接但附加了错误的输出,目前没有办法用正确的输出替换它...):

  CXX  clang-newlib/Release/earth_x86_32.o
LINK clang-newlib/Release/earth_unstripped_x86_32.nexe
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_writeout':
earth.cc:(.text+0xb53c): undefined reference to `llvm_gcda_start_file'
earth.cc:(.text+0xb57c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb59c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb5dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb5fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb63c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb65c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb69c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb6bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb6fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb71c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb75c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb77c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb7bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb7dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb81c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb83c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb87c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb89c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb8dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb8fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb93c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb95c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb99c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xb9bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xb9fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xba1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xba5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xba7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbabc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbadc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbb1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbb3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbb7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbb9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbbdc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbbfc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbc3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbc5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbc9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbcbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbcfc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbd1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbd5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbd7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbdbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbddc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbe1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbe3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbe7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbe9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbedc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbefc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbf3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbf5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbf9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xbfbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xbffc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc01c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc05c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc07c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc0bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc0dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc11c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc13c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc17c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc19c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc1dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc1fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc23c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc25c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc29c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc2bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc2fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc31c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc35c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc37c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc3bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc3dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc41c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc43c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc47c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc49c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc4dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc4fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc53c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc55c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc59c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc5bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc5fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc61c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc65c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc67c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc6bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc6dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc71c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc73c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc77c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc79c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc7dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc7fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc83c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc85c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc89c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc8bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc8fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc91c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc95c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc97c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xc9bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xc9dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xca1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xca3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xca7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xca9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcadc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcafc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcb3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcb5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcb9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcbbc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcbfc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcc1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcc5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcc7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xccbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xccdc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcd1c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcd3c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcd7c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcd9c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcddc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcdfc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xce3c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xce5c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xce9c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcebc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcefc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcf1c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcf5c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcf7c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xcfbc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xcfdc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd01c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd03c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd07c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd09c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd0dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd0fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd13c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd15c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd19c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd1bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd1fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd21c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd25c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd27c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd2bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd2dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd31c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd33c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd37c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd39c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd3dc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd3fc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd43c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd45c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd49c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd4bc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd4fc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd51c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd55c): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd57c): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd5bc): undefined reference to `llvm_gcda_emit_function'
earth.cc:(.text+0xd5dc): undefined reference to `llvm_gcda_emit_arcs'
earth.cc:(.text+0xd5fc): undefined reference to `llvm_gcda_summary_info'
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_init':
earth.cc:(.text+0x1127c): undefined reference to `llvm_gcov_init'
clang-newlib/Release/earth_x86_32.o: In function `__llvm_gcov_writeout':
earth.cc:(.text+0xd605): undefined reference to `llvm_gcda_end_file'
i686-nacl-clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [clang-newlib/Release/earth_unstripped_x86_32.nexe] Error 1

我在这里做了一些(可能是几个)令人难以置信的基本错误,但是没有任何文档我不知道如何做:

  1. 正确构建 pnacl-compiler-rt
  2. 获取它的链接,以便我可以检测我的 .nexe 文件并获取一些覆盖率数据。

非常感谢任何帮助。

最佳答案

  1. 要正确构建,您需要使用 NaCl 工具链编译器构建(假设,您只使用主机编译器构建,即 Mac)
  2. 要链接,一旦使用 NaCl 工具链构建,链接应该可以正常工作。尽管在您的示例中请注意,您已将库放在 64 位文件夹中,并且您正在尝试构建一个 32 位示例。

关于c++ - 构建和使用包含覆盖功能的 pnacl-compiler-rt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532829/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com