使用Cmake在Windows编译C++后报错难以定位程序输入点于动态链接库
由于之前的Clion不支持gcc10以上的版本,我配置了10.3.0版本的gcc并加入Windows环境变量中,最近接手了一个在Linux下开发的项目,涉及c++17和c++20的相关内容,于是在Windows中下载了gcc 11.3.0到另外一个系统盘中。
我使用Cmake对项目进行编译,CMakeLists.txt中设置使用11.3.0版本的gcc进行编译
#e:2:7:6:9:f:4:e:7:1:8:c:3:d:2:7:9:d:a:9:6:2:2:1:f:7:e:1:e:b:e:c#
无论CMake设置debug模式还是release模式,在得到.exe文件以后,执行后均报错难以定位程输入点于动态链接库,具体如下:
#b:2:f:d:c:3:6:a:d:a:a:c:6:2:e:f:4:0:a:c:f:6:2:4:8:a:6:5:1:c:3:6#
#d:8:a:6:7:0:0:9:3:1:7:e:a:5:4:8:d:d:6:2:f:7:e:7:f:2:9:c:8:4:2:8#
libglog.dll编译后生成于该exe目录下,并非系统缺位或版本问题。在查阅相关资料后,我在VS运行时难以定位程序输入点xxx于动态链接库xxx.exe上得到启发,该作者出错的缘由是路径次序问题,我想到我的gcc有两个路径,一个是用于编译的gcc11.3.0,另一个是系统环境变量中的gcc10.3.0。于是我将系统环境变量中的gcc10.3.0的路径替换为gcc11.3.0的路径,问题解决!