我正在尝试从使用交叉编译c,c ++库(emscripten)创建的构建中安装OpenCV。
我遇到过这个网站,它指出了与zlib类似的问题,同时在Android上包含了外部库。 http://www.shiva-engine.com/forum/viewtopic.php?f=76&t=27858
他提到了一个冲突符号列表 -
z_errmsg
zcfree
zcalloc
_tr_init
_tr_tally
_length_code
_dist_code
_tr_align
_tr_stored_block
_tr_flush_block
inflate_table
inflate_copyright
该错误提到了为上述变量定义的全局变量。
上面的链接告诉我更改.h文件中的变量名称并将其称为脏黑客。
我试图在tree.h文件中更改变量名。还尝试根据此creating global variables causes linker error在名称前添加extern
。但错误只是更改为Linking globals named 'my_new_variable_name'
或者extern显示相同的错误。
const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] ={
..
..}
任何能够理解该链接或者我必须如何重命名或使用extern来解决问题并给我一个方向的人都会非常有帮助。 任何帮助表示赞赏。
答案 0 :(得分:0)
对于zlib特有的这个错误,类似于他们在这里所说的http://www.shiva-engine.com/forum/viewtopic.php?f=76&t=27858,我发现了类似的东西。
似乎有三个文件,即trees.h,trees.c和deflate.h,其中定义了_dist_code。
作为仅针对这种情况的临时修复,我刚刚调用了所有变量以及.h
个文件中的静态问题。
static uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] ={
..
..}
以后出现更多问题我只是在OpenCV CmakeLists.txt文件中注释了sse的所有选项,以删除SIMD错误。
希望这有助于某人。欢迎任何更好的解决方案。