经过一番思考后,我用sfml从linux到windows交叉编译了一个C ++程序。当我在sfml的所有.dll的同一目录中运行.exe时,我得到如下错误:
err:module:import_dll Library libgcc_s_dw2-1.dll (which is needed by L"Z:\\home\\george\\Downloads\\test\\sfml-system-2.dll") not found
err:module:import_dll Library libstdc++-6.dll (which is needed by L"Z:\\home\\george\\Downloads\\test\\sfml-system-2.dll") not found
问题是我在编译.exe时静态链接了libgcc和libstdc ++。如何使.dll找到库?如果我静态链接它们也会有效吗?
我的makefile用于编译我的.exe:
#-static-libgcc -static-libstdc++ -DSFML_STATIC
LIBSFML= -static-libgcc -static-libstdc++ -lsfml-graphics -lsfml-audio -lsfml-network -lsfml-window -lsfml-system
CC=$(C32)
C32=i686-w64-mingw32-g++
C64=x86_64-w64-mingw32-g++
app.exe: main.cpp
$(CC) -o $@ $^ $(LIBSFML)