Java 未定义对'的引用;dlopen&x27';dlclose'';dlsym';和';德莱罗';在使用Cygwin64在Windows上构建hsdis-amd64.dll时

Java 未定义对'的引用;dlopen&x27';dlclose'';dlsym';和';德莱罗';在使用Cygwin64在Windows上构建hsdis-amd64.dll时,java,windows,cygwin,Java,Windows,Cygwin,从“”引用时,我遇到一个错误未定义对“dlopen”、“dlclose”、“dlerror”和“dlsym”的引用 x86_64-w64-mingw32-gcc -o build/Linux-amd64/hsdis-amd64.dll -Ibuild/Linux-amd64/include -I/home/bahuwang/binutils-2.32/include -I/home/bahuwang/binutils-2.32/bfd -Ibuild/Linux-amd64/bfd -DLIBA

从“”引用时,我遇到一个错误未定义对“dlopen”、“dlclose”、“dlerror”和“dlsym”的引用

x86_64-w64-mingw32-gcc -o build/Linux-amd64/hsdis-amd64.dll -Ibuild/Linux-amd64/include -I/home/bahuwang/binutils-2.32/include -I/home/bahuwang/binutils-2.32/bfd -Ibuild/Linux-amd64/bfd -DLIBARCH_amd64 -DLIBARCH=\"amd64\" -DLIB_EXT=\".dll\" -O hsdis.c -shared build/Linux-amd64/bfd/libbfd.a build/Linux-amd64/opcodes/libopcodes.a build/Linux-amd64/libiberty/libiberty.a build/Linux-amd64/zlib/libz.a
build/Linux-amd64/bfd/libbfd.a(plugin.o):plugin.c:(.text+0x46c):undefined reference to 'dlopen'
build/Linux-amd64/bfd/libbfd.a(plugin.o):plugin.c:(.text+0x4a7):undefined reference to 'dlclose'
build/Linux-amd64/bfd/libbfd.a(plugin.o):plugin.c:(.text+0x543):undefined reference to 'dlerror'
build/Linux-amd64/bfd/libbfd.a(plugin.o):plugin.c:(.text+0x59c):undefined reference to 'dlsym'
我发现,在命令末尾添加一个参数“-ldl”时,就可以做到这一点,如

x86_64-w64-mingw32-gcc -o build/Linux-amd64/hsdis-amd64.dll -Ibuild/Linux-amd64/include -I/home/bahuwang/binutils-2.32/include -I/home/bahuwang/binutils-2.32/bfd -Ibuild/Linux-amd64/bfd -DLIBARCH_amd64 -DLIBARCH=\"amd64\" -DLIB_EXT=\".dll\" -O hsdis.c -shared build/Linux-amd64/bfd/libbfd.a build/Linux-amd64/opcodes/libopcodes.a build/Linux-amd64/libiberty/libiberty.a build/Linux-amd64/zlib/libz.a -idl
但是编译的hsdis-amd64.dll显示

Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled
有什么问题吗

当我在Centos 7上用命令生成交叉编译器时

make MINGW=x86_64-w64-mingw32-gcc BINUTILS=~/binutils-2.32
它工作得很好