首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(C)如何在CLion中链接dll

(C)如何在CLion中链接dll
EN

Stack Overflow用户
提问于 2020-09-15 10:32:36
回答 1查看 1.4K关注 0票数 0

我已经用Visual编写了一段时间的C程序,但现在转向了CLion。我的编程和目标系统是Windows10。

在Visual中,我能够在我的exe中包含所需的DLL,如"vcruntime140d.dll“和"ucrtbased.dll”。

为此,我进入了项目设置,并将configuration settings - C/C++ - code generation - runtime library设置为“多线程-调试(/MTd)”。为此,我能够运行生成的exe,而不会出现"vcruntime140d.dll缺失“或"ucrtbased.dll缺失”之类的错误。

但是如何在CLion中实现这一点呢?

我已经搜索了很长一段时间了,我发现了很多关于如何包含.lib文件的教程,但没有DLL的教程(我没有它的代码)。

EN

回答 1

Stack Overflow用户

发布于 2020-09-16 13:52:49

对于Clion,您实际上是在使用CMake。所以问题就像如何在CMake中链接dll一样。

有很多方法可以做。例如:

如果默认情况下找不到库,请使用图书馆搜索它。

如果这些函数对您来说太奇怪了,请检查CLion团队的CLion。

更新

正如您所问的注释中所述,您的问题是如何在不使用lib的情况下加载dll 。要解决这个问题,您可以使用动态加载dll从dll中创建一个库

对于Windows问题,请将以下内容添加到CMakeLists.txt中

代码语言:javascript
运行
复制
foreach (flag_var
      CMAKE_C_LINK_FLAGS
      CMAKE_C_LINK_FLAGS_DEBUG
      CMAKE_C_LINK_FLAGS_RELEASE
      CMAKE_CXX_LINK_FLAGS
      CMAKE_CXX_LINK_FLAGS_DEBUG
      CMAKE_CXX_LINK_FLAGS_RELEASE
      CMAKE_EXE_LINKER_FLAGS
      CMAKE_EXE_LINKER_FLAGS_DEBUG
      CMAKE_EXE_LINKER_FLAGS_RELEASE
      CMAKE_C_FLAGS
      CMAKE_C_FLAGS_DEBUG
      CMAKE_C_FLAGS_RELEASE
      CMAKE_C_FLAGS_MINSIZEREL
      CMAKE_C_FLAGS_RELWITHDEBINFO
      CMAKE_CXX_FLAGS
      CMAKE_CXX_FLAGS_DEBUG
      CMAKE_CXX_FLAGS_RELEASE
      CMAKE_CXX_FLAGS_MINSIZEREL
      CMAKE_CXX_FLAGS_RELWITHDEBINFO)
  string(REPLACE "/MD" "-MT" ${flag_var} "${${flag_var}}")
endforeach ()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63900013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档