我已经用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的教程(我没有它的代码)。
发布于 2020-09-16 13:52:49
对于Clion,您实际上是在使用CMake。所以问题就像如何在CMake中链接dll一样。
有很多方法可以做。例如:
如果默认情况下找不到库,请使用图书馆搜索它。
如果这些函数对您来说太奇怪了,请检查CLion团队的CLion。
更新
正如您所问的注释中所述,您的问题是如何在不使用lib的情况下加载dll 。要解决这个问题,您可以使用动态加载dll或从dll中创建一个库。
对于Windows问题,请将以下内容添加到CMakeLists.txt中
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 ()https://stackoverflow.com/questions/63900013
复制相似问题