C语言 undefined reference问题_c语言undefined reference to-程序员宅基地

技术标签: 编程语言  

报错

(.text+0x15): undefined reference to `get_names'
(.text+0x2d): undefined reference to `show_names'

names_st.h

#include <string.h>
#define SLEN 32

struct names_st 
{
    
    char first[SLEN];
    char last[SLEN];
};

typedef struct names_st names;

void get_names(names *);
void show_names(const names *);
char * s_gets(char *st, int n);

names_st.c

#include "names_st.h"

#include <stdio.h>

void get_names(names* pn) 
{
    
    printf("Please enter your first name: ");
    s_gets(pn->first, SLEN);

    printf("Please enter your last name: ");
    s_gets(pn->last, SLEN);
}

void show_names(const names* pn) 
{
     
    printf("%s %s", pn->first, pn->last); 
}

char* s_gets(char* st, int n) 
{
    
    char* ret_val;
    char* find;

    ret_val = fgets(st, n, stdin);
    if (ret_val) 
    {
    
        find = strchr(st, '\n');
        if (find)
            *find = '\0';
        else
            while (getchar() != '\n') 
            {
    
                continue;
            }
        return ret_val;
    }
}

userheader.c

#include <stdio.h>

#include "names_st.h"

int main(void) 
{
    
    names candidate;

    get_names(&candidate);
    printf("Let's welcome ");
    show_names(&candidate);
    printf(" to this program!\n");
    return 0;
}

解决方法:

gcc -o main userheader.c namest.c
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41638851/article/details/113865936

智能推荐

JavaSE基础复习day01-程序员宅基地

文章浏览阅读815次,点赞4次,收藏2次。学习目标* 能够说出JDK,JRE,JVM各自的作用和关系* 能够完成HelloWorld案例的编写及运行* 能够使用注释对程序进行说明* 能够知道标识符、关键字的特点* 能够知道常量的分类* 掌握JDK、eclipse的安装配置第1章 初识Java1.1 Java语言概述1.1.1 Java简介Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让

Windows服务简单开发_windows服务开发-程序员宅基地

文章浏览阅读2.9k次。Windows服务简单开发_windows服务开发

MATLAB解决正态分布数据的大致方法-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏55次。当我们有了一个矩阵,如何判断矩阵里面的元素是否满足正态分布,以及如何绘制图像和求参数。我根据自己最近使用matlab的一些体会,将大致方法写下。1、矩阵元素转化成行向量 reshape()函数example:A = 1 2 3 4 5 6 7 8 9>> B=reshape(

成功解决CMake Error at src/CMakeLists.txt:3 (add_library): Cannot find source file:-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏4次。目前整个的文件结构如下:user@user-B460MPOWER:~/work/xinguo/rgbd-slam-tutorial-gx/partI$ tree -L 2.├── bin├── build│ ├── CMakeCache.txt│ ├── CMakeFiles│ ├── cmake_install.cmake│ ├── Makefile│ └── src├── cmake-build-debug│ ├── CMakeCache.txt│ ├

Lending Club贷款数据集下载(2016-2018)_lendingclub数据集下载-程序员宅基地

文章浏览阅读1.5w次,点赞29次,收藏31次。数据集可用于信用风险、欺诈风险建模使用。网盘地址:https://pan.baidu.com/s/1ONrS1JbgL9ZrmMEvio49PA 密码:let1_lendingclub数据集下载

Vue3通透教程【一】Vue3现状—必然趋势?_vue3要凉凉了-程序员宅基地

文章浏览阅读6.7w次,点赞205次,收藏212次。凉哥作为 Vue 的忠诚粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓得,所谓三大框架使用人数最多,公司选型最多的框架,凉哥之前在文章中也提到过就是 Vue 框架之所以火起来的原因,和 Vue 框架相比其他框架的巨大优势,有兴趣的伙伴可以看一下Vue框架背后的故事。_vue3要凉凉了

随便推点

超硬核Java学习路线图+学习资源+实战项目汇总,看完以后不用再问我怎么学Java了!_java学习路线 知乎-程序员宅基地

文章浏览阅读6.7k次,点赞30次,收藏204次。之前写过很多次关于Java学习指南、Java技术路线图的文章。但是总还是有小伙伴来问我,Java怎么学,项目怎么做,资源怎么找,真是让人头秃。于是这次黄小斜决定来一波狠的,把所有这些内容都整理起来,做成一份非常硬核的Java学习指南+路线图,一篇文章搞定Java学习,360度无死角(可能)如果你们喜欢这类硬核的文章,以后我也会继续这么硬核下去的!不要忘了分享噢。以下就是本文的主要内容,万字长文,你可悠着点看,拒绝到收藏夹吃灰!一、Java学习路线图1 计算机基础2Java编程..._java学习路线 知乎

用原生VideoView进行全屏播放时的问题_videoview mvideoview.setzorderontop(true);其他界面显示不出-程序员宅基地

文章浏览阅读1.1k次。之前参加了一个课程,里面有一节讲到了用视频作为启动界面。讲师用的是自定义VideoView,重写onMeasure方法,因为原生的VideoView在那情况下不能实现全屏播放。当时没有深入研究,现在补回来。用的是36氪之前的视频(608×1080)和Genymotion中的Google Nexus 5(1080×1920)。 一、效果图1、原生VideoView的效果,这里没有让底_videoview mvideoview.setzorderontop(true);其他界面显示不出来

latex编译中遇到的错误-程序员宅基地

文章浏览阅读9k次,点赞6次,收藏5次。问题一、:编译报错Misplaced alignment tab character & 点击跳到.bbl文件里面错误原因:在LaTeX中&符号有特殊含义,不能直接写,需要使用转义字符的形式。即 \&。而LaTeX引文.bib 插入的由google学术或者百度学术复制来的bibtex中有&字符修改:在.bib文件中,将& 改为 \&,删除....

学习网络平台的路线图-程序员宅基地

文章浏览阅读111次。The Web Platform is an amazing ecosystem of APIs, tools, languages, and it is more powerful than ever today. Web平台是由API,工具,语言组成的令人惊叹的生态系统,它比以往任何时候都功能强大。 I wrote a lot of tutorials and articles on t...

OpenCV简单的图像灰度化_opencv 灰度图 mattype-程序员宅基地

文章浏览阅读9.2k次,点赞2次,收藏18次。OpenCV简单的图像灰度化图像灰度化算是数字图像处理中很简单的操作了,这里使用OpenCV简单尝试一下。_opencv 灰度图 mattype

【SpringBoot框架篇】37.使用gRPC实现远程服务调用_springboot使用grpc远程调用-程序员宅基地

文章浏览阅读941次,点赞28次,收藏14次。RPC(Remote Procedure Call)是一种用于实现分布式系统中不同节点之间通信的协议。它允许一个节点(称为客户端)调用另一个节点(称为服务器)上的远程方法,就像调用本地方法一样。RPC的目标是隐藏底层通信细节,使得远程调用过程对开发者透明。在RPC中,客户端通过发送请求消息给服务器来调用远程方法,服务器接收到请求后执行相应的方法,并将结果返回给客户端。RPC可以跨越不同的网络和操作系统,使得分布式系统中的不同节点能够进行高效的通信和协作。_springboot使用grpc远程调用