gpt4 book ai didi

javascript - 如何列出 em++ 找到的所有符号?

转载 作者:行者123 更新时间:2023-11-28 05:33:54 26 4
gpt4 key购买 nike

我正在使用 emcc/em++,尝试链接多个 LLVM 字节码,但其中一些失败了。

$ em++ -std=c++11 \
-o _assimp.js \
-O2 \
--memory-init-file 0 \
-I../include \
code/CMakeFiles/assimp.dir/*.o \
code/CMakeFiles/assimp.dir/__/contrib/ConvertUTF/*.o \
code/CMakeFiles/assimp.dir/__/contrib/unzip/unzip.c.o \
../port/emscripten/emassimp.cpp

问题是它说有几个符号未找到。

warning: unresolved symbol: inflateEnd
warning: unresolved symbol: _ZN6Assimp3FBX6ObjectC2EyRKNS0_7ElementERKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE
warning: unresolved symbol: inflateInit_
warning: unresolved symbol: _ZN6Assimp3FBX6ObjectD2Ev
warning: unresolved symbol: inflate

inflate 符号似乎没有解析,但它肯定存在于 unzip.c.o 中。

$ file unzip.c.o
unzip.c.o: LLVM IR bitcode
$ llvm-nm unzip.c.o
U crc32
-------- t decrypt_byte
U fill_fopen_filefunc
U free
U get_crc_table
U inflate
U inflateEnd
U inflateInit2_
-------- t init_keys
U malloc
U strcmp
-------- t strcmpcasenosensitive_internal
U strlen
-------- T unzClose
-------- T unzCloseCurrentFile
-------- T unzGetCurrentFileInfo
-------- T unzGetFilePos
-------- T unzGetGlobalComment
-------- T unzGetGlobalInfo
-------- T unzGetLocalExtrafield
-------- T unzGetOffset
-------- T unzGoToFilePos
-------- T unzGoToFirstFile
-------- T unzGoToNextFile
-------- T unzLocateFile
-------- T unzOpen
-------- T unzOpen2
-------- T unzOpenCurrentFile
-------- T unzOpenCurrentFile2
-------- T unzOpenCurrentFile3
-------- T unzOpenCurrentFilePassword
-------- T unzReadCurrentFile
-------- T unzSetOffset
-------- T unzStringFileNameCompare
-------- D unz_copyright
-------- T unzeof
-------- t unzlocal_CheckCurrentFileCoherencyHeader
-------- t unzlocal_DosDateToTmuDate
-------- t unzlocal_GetCurrentFileInfoInternal
-------- t unzlocal_SearchCentralDir
-------- t unzlocal_getByte
-------- t unzlocal_getLong
-------- t unzlocal_getShort
-------- T unztell
-------- t update_keys

实际上,有什么方法可以查看 em++ 解析为符号的内容吗?如果我能理解unzip.c.o 中的符号被em++ 忽略的原因就更好了。

最佳答案

llvm-nm 的输出清楚地表明这个文件没有符号。

尝试对项目创建的所有目标文件执行 llvm-nm,以确保您定义了这些缺失的符号。使用 grep 会有帮助。

关于javascript - 如何列出 em++ 找到的所有符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776025/

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