c 中对“getline”的未定义引用

2023-11-29

我正在学习在 C 编程中使用 getline 并尝试了以下代码http://crasseux.com/books/ctutorial/getline.html

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int atgc, char *argv[])
{
    int bytes_read = 1;
    int nbytes = 10;
    char *my_string;

    my_string = (char *)malloc(nbytes+1);

    puts("Please enter a line of text");

    bytes_read = getline(&my_string, &nbytes, stdin);

    if (bytes_read == -1)
    {
        puts ("ERROR!");
    }
    else
    {
        puts ("You typed:");
        puts (my_string);
    }

    return 0;
 }

但是,问题是编译器不断返回以下错误:对“getline”的未定义引用。 你能告诉我问题是什么吗?谢谢你!

我使用的是 Win7 64位 + Eclipse Indigo + MinGW


其他答案已经涵盖了大部分内容,但有几个问题。第一的,getline()不在 C 标准库中,而是 POSIX 2008 扩展。通常,它可用于 POSIX 兼容编译器,因为宏 _POSIX_C_SOURCE 将使用适当的值进行定义。您可能有以前的较旧编译器getline()已标准化,在这种情况下,这是一个 GNU 扩展,您必须#define _GNU_SOURCE before #include <stdio.h>要启用它,并且必须使用 GNU 兼容的编译器,例如 gcc。

此外,nbytes应该有类型size_t, not int。至少在我的系统上,它们的大小不同,size_t更长,并使用int*代替size_t*可能会产生严重的后果(并且也不能使用默认的 gcc 设置进行编译)。有关详细信息,请参阅 getline 手册页 (http://linux.die.net/man/3/getline)。

进行此更改后,您的程序可以在我的系统上编译并正常运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c 中对“getline”的未定义引用 的相关文章

随机推荐

  • pgrep -P,但对于孙子而不仅仅是孩子

    我在用 pgrep P 获取 的子进程 pid 但我实际上也想要一份孙子和曾孙的名单 我该怎么做呢 例如 使用常规编程语言 我们会使用递归来做到这一点 但是使用 bash 呢 也许使用 bash 函数 我已经发布了尝试解决方案 它简短而有效
  • uwp InkCanvas 将斯托克斯保存为 svg

    我正在尝试将 InkCanvas InkStorkes 保存为 SVG 我发现之前的一个问题适用于 Wpf 但我无法让它与 uwp 一起使用 Wpf InkCanvas 将斯托克斯保存为 svg 我对其进行了一些更改 但遇到了 GetGro
  • 如何将 simulink 文件转换为 XML

    我需要将 Simulink 文件 mdl 转换为 XML 文件 经过任何搜索后 我没有找到任何内容来帮助我解决此问题 您知道 Java 中的某种方法或现成的解决方案吗 从 R2008b 开始 您可以使用以下命令将 mdl 文件导出到 xml
  • Angular 表单 - 访问子组件模板中的 FormArray

    我有一个需要几个组件FormControls and FormArrays 作为输入 我正在访问FormControl来自子组件的 s 如下所示 formControl control 这工作得很好 但我找不到一种方法来做同样的事情Form
  • 将 dd/mm/yy 和 dd/mm/yyyy 转换为日期

    我有一些字符向量 其中包含各种格式的日期 如下所示 dates lt c 23 11 12 20 10 2012 22 10 2012 23 11 12 我想将它们转换为日期 我已经尝试了 lubridate 包中非常好的 dmy 但这不起
  • 手动对整数列表进行排序

    我对编程还很陌生 我只学习了几个星期的Python 最近有人给我一个练习 要求我生成一个整数列表 然后在单独的列表中手动将数字从最低到最高排序 import random unordered list range 10 ordered lo
  • 虚拟 COM 端口还是使用原始端点?

    我正在使用 USB 控制器和代码示例在微控制器中开发软件来实现虚拟 COM 端口 它的实现是一个来回传输数据的设备 我正在考虑使用 2 个批量端点 在我的计算机中使用 libusb 来读取和写入它们 虚拟 COM 的优点是不需要 libus
  • 通过 Outlook 在 R 中发送电子邮件 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何在 R 中通过 Outlook 发送电子邮件 所有的例子sendmailR使用 Gmail 服务器 但我不能这样做 您可以使用RDCOMClient包从 R 中访问 COM
  • SQL Server LocalDB 实例无法启动(自动)

    我有一个 WPF 应用程序连接到 SQL Server 2014 Express LocalDB 即本地数据库 mdf数据库文件 该应用程序使用 Entity Framework Core 库版本 7 0 0 rc1 final 这是我正在
  • JsonConstructor 在 IEnumerable 属性上失败?

    因此 使用访问器设置可枚举效果非常好 public class SetEnumerableWithAccessor public IEnumerable
  • React 中使用鼠标滚轮缩放图像

    所以我正在尝试重制这个版本 取自并修改自这个帖子 在 React 中使用鼠标滚轮进行图像缩放 问题是 即使在 React 中使用相同的数学和逻辑 它也不能完美地工作 我不知道为什么 图像似乎没有在光标所在的位置缩放 这是我的组件 impor
  • 如何使用saxon内置目录功能

    我下载了 SaxonHE9 4 0 6J 并希望在 CLI 上处理 XHTML 然而 Saxon 尝试从 W3C 加载 DTD 并且每个简单命令都需要花费太多时间 我有 xml 目录 我通过设置指向目录文件的 env 变量成功地将其与 xm
  • vec_sld 字节序敏感吗?

    我正在开发具有核心加密功能的 PowerPC 机器 我在使用内置函数将 AES 密钥扩展从大端移植到小端时遇到问题 大端有效 但小端无效 下面的算法是一个片段中呈现的IBM 博客文章 我认为我已将问题隔离到下面的第 2 行 typedef
  • 防止Oracle中重复插入数据

    我有表 COBA 有 3 个字段 它们是 NOMER NAMA KETERANGAN 表中存在这样的数据 我想向该表插入另一个值 但是如何防止在 Oracle 中重复插入查询数据 我尝试使用 WHERE NOT EXIST 这是我的查询 I
  • 将鞋子集成到 Aptana Studio RadRails 中

    我怎样才能运行我的Carpet直接从 Aptana Studio 与 RadRails 应用程序 将 Shoes exe 设置为 VM 解释器将不起作用 如果 Ruby 项目中有该文件 则可以执行以下操作 转到运行 gt 外部工具 gt 外
  • 如何同时打开 Pygame 窗口和 Tkinter 窗口?

    我正在使用 Pygame 模块制作一个简单的游戏 我需要在 Pygame 窗口旁边打开 Tkinter 窗口 每当我尝试打开两个窗口时 第二个窗口只有在我杀死第一个窗口后才会打开 现在 我能想到的唯一解决方案是使用多线程 但是 我无法实施它
  • ld:在 MacOS / nasm 上找不到架构 x86_64 的符号

    我是汇编编程新手 所以我提前道歉 我在链接第一个时遇到问题Hello world汇编程序在MacOS and nasm section data text db Hello World 10 section text global star
  • 在django中删除带有表单的对象

    我正在显示一张桌子 每行都应该有一个删除按钮 用于从表中删除元素 我的问题是 我不确定如何将元素的 id 传递给视图 html for post in posts div h3 Zuletzt ausgew hlt h3 p publish
  • Rails Asset Pipeline - 错误的指纹

    我的 Rails 4 应用程序有new html erb其中引用了form html erb app assets templates jobs new html erb
  • c 中对“getline”的未定义引用

    我正在学习在 C 编程中使用 getline 并尝试了以下代码http crasseux com books ctutorial getline html include