繁体   English   中英

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

[英]How to list all symbols em++ has found?

我正在使用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.co中

$ 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++已经解析为符号吗? 如果我能理解em++忽略unzip.co中的符号的原因会更好。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM