【发布时间】:2017-03-28 19:50:02
【问题描述】:
我正在尝试使用我的 mac 上的终端将内容从一个文件复制到 c 中的另一个文件。
当我尝试编译代码时,我不断收到这个错误,我不确定为什么。
这是我的代码:
#include <stdio.h>
#include <stdarg.h>
int main(int argc, char *argv[])
{
FILE *f1Ptr, *f2Ptr;
char x;
if(argc != 3)
{
printf("Incorrect number of arguments\n");
}
f1Ptr = fopen(argv[1], "r");
f2Ptr = fopen(argv[2], "w");
if(f1Ptr == NULL || f2Ptr == NULL)
{
puts("File could not be opened");
}
while(!feof(f1Ptr))
{
x = fgetc(f1Ptr);
fputc(x, f2Ptr);
}
printf("File has been copied\n");
fclose(f1Ptr);
fclose(f2Ptr);
return 0;
}
这是错误
ld: file too small (length=0) file 'file2.txt' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
构建命令:“gcc q2.c file1.txt file2.txt ld:对于架构 x86_64,文件太小(长度 = 0)文件“file2.txt” clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
【问题讨论】:
-
哪个错误?请复制错误的文本并将其粘贴到您的帖子正文中。不要链接到屏幕截图。
-
“无法打开文件”是错误消息的典型示例。哪个文件?为什么打不开?有很多关于如何编写更好的错误消息的好例子。一个这样的例子是偶然在一个你必须阅读的答案中的一个不同的原因:stackoverflow.com/questions/5431941/…
-
请使用edit 按钮将错误文本添加到您的问题正文中。不要为此使用 cmets。 不要链接到屏幕截图。
-
您似乎正在尝试使用
file2.txt作为链接器的参数。这不太可能奏效。请发布您的构建命令。