【发布时间】:2020-11-10 17:00:27
【问题描述】:
在我的 C 项目中,我有 4-5 个文件。首先,我通过在包含部分中直接包含源文件来测试它们。 我使用代码块来完成。我的程序运行得非常好。
但是当我尝试使用 Cmake 构建项目时出现了问题。
我将项目的生成器指定为MingW Makefiles 并勾选“Use default native compiler”。
配置和生成完成。
当我使用命令mingw32-make 运行时出现错误
error: too few arguments to function 'strnlen'
int len=strnlen(buf);
我已经包含了 string.h 仍然存在错误。当我直接在代码块中运行时,这些错误从未出现过。我尝试将编译器更改为代码块文件夹中的编译器。还是没用。 有什么建议,比如我应该让它工作的编译器吗? Idk 代码块默认编译器位置在哪里..
【问题讨论】:
-
您是否尝试过阅读此功能的文档?如
man 3 strnlen? -
这个函数在
string.h中似乎没有按照标准定义(至少以cppreference.com为代表)。我发现的所有strnlen函数都需要 2 个参数。不确定代码块从哪里获得此功能,但您不能依赖此功能可用于其他编译器...
标签: c makefile cmake codeblocks