c - 为什么一次编译两个 c 文件以在终端中构建通用可执行文件不起作用?

标签 c

我正在尝试使用两个 C 代码构建一个可执行文件,并将这两个文件与头文件“encrypt.h”链接起来。但它不起作用,你能找出为什么它不起作用吗?

这是我调用加密函数的 c 文件...它被命名为 message_hider.c

#include <stdio.h>
#include "encrypt.h"


int main()
{   
  freopen("in.txt","r",stdin);
  char msg[80];
  while (fgets(msg, 80, stdin)) {
    encrypt(msg);
    printf("%s", msg);
  }
}

这是我的头文件 encrypt.h

void encrypt(char *message);

这是 encrypt.c 文件...

#include "encrypt.h"

void encrypt(char *message){
char c;
while(*message){
  *message=*message^31;
  *message++;
}
}

这就是我在终端中执行但未编译时得到的结果...

gcc message_hider.c encrypt.c -o message_hider
/tmp/ccF56PqA.o: In function `main':
message_hider.c:(.text+0x3c): undefined reference to `encrypt'
collect2: error: ld returned 1 exit status

这是为什么?

最佳答案

encrypt.c 中,您拼错了函数名称:

void encript(char *message){

关于c - 为什么一次编译两个 c 文件以在终端中构建通用可执行文件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946797/

相关文章:

c - 逻辑运算符、表达式和条件语句( bool 值)

无法将用户输入保存到变量中

c - 在 C 中搜索素数时遇到问题

c - C++ Builder 中符号链接(symbolic link)的替代方案

c - 如何让 tcsetpgrp() 在 C 中工作?

c - 在 C 中生成所有可能的数组组合 - 最佳图形着色

c - 阅读是否涉及多线程应用程序中的任何锁定?

c - 错误代码处理

c - 错误消息 : Main. c|6|error:预期标识符或 '(' 在 'A' 之前

python - 通过 c (debian) 在终端中运行 python 模块