建立什么网站赚钱,建筑工程网官网招聘资料员,网站建设配置,娱乐网站建设怎么样环境
操作系统:win11 专业版 gcc: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 编辑器#xff1a;vscode
要求
在c中使用正则表达式
遇到的问题以及解决思路
C标准中并没有正则表达式库
从其他地方下载正则表达式库即可。 http://gnuwin32.sourcefo…环境
操作系统:win11 专业版 gcc: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 编辑器vscode
要求
在c中使用正则表达式
遇到的问题以及解决思路
C标准中并没有正则表达式库
从其他地方下载正则表达式库即可。 http://gnuwin32.sourceforge.net/packages/regex.htm 请仔细阅读页面信息 尤其是它的位数信息
无法识别 regex 头文件
两种解决办法 一种直接把 下载的内容放到当前文件夹然后使用相对路径include。 另外一种则是配置c_cpp_properties.json文件。
{configurations: [{name: windows-gcc-x64,includePath: [${workspaceFolder}/**,F:/Compilers/regex/include//添加了正则表达式库],compilerPath: D:/CodeBlocks/MinGW/bin/gcc.exe,cStandard: ${default},cppStandard: ${default},intelliSenseMode: windows-gcc-x64,compilerArgs: []}],version: 4
}编译的时候报错undefined reference to __imp_regcomp’
修改生成任务文件添加lib所在目录文件和lib 别添加多了只添加 regex.lib
{version: 2.0.0,tasks: [{type: cppbuild,label: C/C: gcc.exe 生成活动文件,command: D:/CodeBlocks/MinGW/bin/gcc.exe,args: [-fdiagnostics-coloralways,-g,${file},//include头文件-I,F:/Compilers/Regex/include/,//预编译好的lib和dll的位置 包不大就直接静态了-L,F:/Compilers/Regex/bin/,-l,regex2,-o,${fileDirname}\\${fileBasenameNoExtension}.exe,],options: {cwd: D:/CodeBlocks/MinGW/bin},problemMatcher: [$gcc],group: build,detail: 编译器: D:/CodeBlocks/MinGW/bin/gcc.exe}]
}链接的时候报错ld.exe: cannot find -lregex.lib
找了半天天问题一度怀疑是命令错误因此查了一堆资料但是还是没找到。。。。 所以我决定先能正常使用了再去看命令咋写。 所以我决定使用VS去进行库的导入。 稍微搜索一下即可配置。搜索关键词 VS C 导入 静态链接库 动态链接库 可是当我配置完查看命令行的时候才想起来VS用的不是GCC是MSVC
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!
所以那些命令其实根本没啥用。我要是在VSCODE中用微软的MSVC还不如直接用VS搞。
于是我就又开始调试看错误 终于我发现了
skipping incompatible F:/Compilers/Regex/bin//regex2.dll when searching for -lregex2
我看到这个skip 就感觉很奇怪为啥跳了呢 仔细一搜发现这句话的意思是因为regex2.dll的位数不匹配所以自动忽略了它。 嗯 于是我去查看了regex2.dll的位数 方法可参考这篇博文 https://blog.csdn.net/BigData_Mining/article/details/115444969 发现我下的dll是32位但是我的gcc是64位的 生成的程序默认64所以就给我忽略了。 所以就没找到。
我仔细思考了一下认为现在有4种解决办法
直接用VS写
最省事的一种管他那么多人生苦短我用VS
换个语言
理由同上我的目的是写一个词法分析器用c只是觉得效率更高。。。
下载64位的dll
很难找而且之后还会不会有问题我也不知道
下载别人的源码然后编译成lib 或者 dll
上面那个网站除了zip还提供了源码所以其实是可以下载下来然后自己做一个dll的。
修改目标程序位数为32位
这个我通过-m32试了试还有一堆报错没心查了
自己写一个正则