Clion, CMake, MSVC vs GCC 链接错误

这个短文今后或许不会填坑,但还是记录一下问题。

  1. Clion使用CMake配置文件调用MSVC的时候似乎不能配置cl.exe的编译参数,导致静态库链接产生如下错误,始终无法链接成功。改用GCC编译静态库之后,链接一次成功,配置文件也没有改动。
error LNK2038: mismatch detected for 'RuntimeLibrary': 
value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj
  1. 使用CMake_CXX_FLAGS指定 "/MD" 参数反而会进一步产生如下提示,说明工具链中的某几步覆盖了这个参数。
cl : Command line warning D9025 : overriding '/MT' with '/MD'
  1. 由于用的是Clion所以不知道在哪里改设置,如果是VS的可以参照下面的文档。
    Linker Tools Warning LNK4098
    /MD, /MT, /LD (Use Run-Time Library)
  2. OpenCV Windows GCC编译还是看了下面两位老哥的攻略。因为不用JAVA什么的,暂时把BUILD_JAVA、BUILD_TEST选项关了,为了编译静态库把BUILD_SHARED_LIBS打开了。
    https://blog.csdn.net/libaineu2004/article/details/104252289
    windows MinGW OpenCV 编译安装与第一个程序的命令行编译运行

你可能感兴趣的:(Clion, CMake, MSVC vs GCC 链接错误)