使用 cmake 在 windows 平台下编译后运行可执行文件为什么会 提示 `由于找不到 libgio-2.0-0.dll` ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SystemLight
V2EX    C

使用 cmake 在 windows 平台下编译后运行可执行文件为什么会 提示 `由于找不到 libgio-2.0-0.dll` ?

  •  
  •   SystemLight 2021 年 3 月 11 日 3259 次点击
    这是一个创建于 1840 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 在 IDE(CLion)中运行软件一切正常,编译后为什么缺失 dll 呢
    • cmake 难道不能自动把以来 dll 加入进么
    • 为什么 IDE 中执行文件可以,但是执行编译后 exe 就提示缺少 dll 呢
    • 该如何解决,能否在 cmake 配置项中配置解决
    8 条回复    2021-03-11 19:19:53 +08:00
    pursuer
        1
    pursuer  
       2021 年 3 月 11 日
    windows 能不能找到 dll 取决于你的 PATH 环境变量等,cmake 只是在生成的文件中标记用到了这个 dll,但查找是 windows
    pursuer
        2
    pursuer  
       2021 年 3 月 11 日
    忘写解决方法了,你可以把 dll 文件夹加入到 PATH 或者把 dll 放到可执行文件目录下试试
    bruce0
        3
    bruce0  
       2021 年 3 月 11 日
    linux 可以通过制定 rpath 来指定动态库目录

    Windows 上好像没有这个东西 Windows 上程序会在 path 和.exe 的当前目录找 .dll 文件

    所以可以把需要的 .dll 文件放到 path 目录 或者 .exe 的目录中
    SystemLight
        4
    SystemLight  
    OP
       2021 年 3 月 11 日
    @pursuer cmake 可不可以配置将需要的动态链库一起编译打包到应用程序中
    SystemLight
        5
    SystemLight  
    OP
       2021 年 3 月 11 日
    @pursuer 是的,加入环境变量是没有问题的,但是问题是程序需要分发到不同主机,每次配置环境变量很麻烦
    SystemLight
        6
    SystemLight  
    OP
       2021 年 3 月 11 日
    @bruce0 cmake 有没有功能可以自己复制这个 dll 到程序目录呢
    bruce0
        7
    bruce0  
       2021 年 3 月 11 日
    set(LIBRARY_OUTPUT_PATH XXX) 可以设置生成的动态库的目

    详细的可以看一下这个 https://juejin.cn/post/6936408961050476558
    systemcall
        8
    systemcall  
       2021 年 3 月 11 日 via Android
    试试把 DLL 和 exe 放在同一级目录
    可以用静态编译试试,程序会大很多,但是应该就不会报缺 DLL 的错误了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2623 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 15:50 PVG 23:50 LAX 08:50 JFK 11:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86