首页 > 其他分享 >在visual studio中使用cmake生成dll中的坑

在visual studio中使用cmake生成dll中的坑

时间:2022-08-31 19:58:35浏览次数:68  
标签:cmake dll visual studio shared 生成 链接

最近改用visual studio写c++,把我之前基于MinGW的代码库clon下来在vs中跑,结果不能运行,因为链接器总是莫名奇妙地链接的我想要生成的dll文件同名的lib文件如下图所示
文件结构很好看懂,shared.cpp和shared.hpp生成dll,然后main链接该dll(至少我之前在linux或者在window上用MinGW一直这么搞的没问题)。但是使用看最下面的输出,我明明想要链接"shared.dll",却总是链接到"shared.lib",一直生成失败。
解决方法就是在CMakeLists.txt文件中添加SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)就可以了
要说明的是由于题主的技术能力有限,不知道是不是我机械特有的问题,还是其它特性,不知到具体的原因,如果有大神知道具体原因希望能不宁赐教,谢谢了。

标签:cmake,dll,visual,studio,shared,生成,链接
From: https://www.cnblogs.com/BeiMingXianYv/p/16644332.html

相关文章

  • 在VS2019中配置OpenGL环境。(使用CMake方法)
    网上一大堆VS下配置OpenGL环境的,但是这些方法都是基于VS空项目,并没有利用Cmake来构建。而我之前的代码都是在Linux下使用cmake构建,所以为了更快的在VS下调试运行我的程序,所......
  • Visual Studio神级插件之CodeMaid自动整理你的代码
    介绍当我们平时coding时,代码的格式千奇百怪,不知道快捷键的同学,可能还在徒手敲敲空格或者缩进。知道快捷的同学,每次写完后,会按下快捷键,单有时还会忘记,使得阅读代码时不太......
  • DAX Studio 3 正式发布
    DAXStudio3 于今天发布。这个新的主要版本提供了新的用户界面和用户体验,提供了现代的外观和感觉,而不会丢失以前版本中提供的任何功能。相反,在DAXStudio3中,许多过去......
  • CMake及交叉工具编译链的安装使用
    1.原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的mak......
  • AndroidStudio使用命令行出包
    AndroidStudio使用命令行出包使用命令行出包的两种方式:方案1、Apacheant命令行出包(弃用)。方案2、AndroidGradle命令行出包。先说方案1,此方案为古老传说流传下来的出......
  • VisualStudio启动项目提示“[xxxx] iisexpress.exe”已退出
    一、在通过VisualStudio直接启动项目时,iisexpress.exe直接退出1.程序“[6068]iisexpress.exe:程序跟踪”已退出,返回值为0(0x0)。2.程序“[6068]iisexpress.exe“已......
  • Android Studio 签名打包失败
     异常:  百度结果:如上路径的启动图片过大,本次的大小有2M多。 解决:可从其他文件中选取小尺寸的图片替换,目前选择此上层目录下drawable-land-xxhdpi文件夹中的尺......
  • 取消Debian上vim右键进入的visual模式
    正常情况下,在vim编辑状态下,通过右键是可以进行拷贝和粘贴的。但是Debian的vim,点击右键后进入了一种visual模式。修改配置文件:usr/share/vim/vim81/defaults.vim(如果低版......
  • “轻松搞定CMake”系列之find_package用法详解
    本文是“轻松搞定CMake”系列博客中的一篇,该篇文章的主要目的是详细讲解一下CMake中搜包命令find_package的使用和原理。其他更多文章请参考:“轻松搞定CMake”系列博客......
  • Cmake之深入理解find_package()的用法
    刚刚接触Cmake的时候,对于find_package的用法以及背后的原理经常一头雾水,官方文档比较晦涩难懂,网上的博客也都讲解的比较片面。这里通过实战代码案例进行一下详细的总结......