Linux 中的 Makefile 文件错误!! 麻烦师傅帮我看看! 我是初学者 谢谢 5

发布于 科技 2024-06-25
18个回答
  1. 匿名用户2024-01-29

    生成文件的内容(请注意,在目标行下使用制表键):

    #makefire tesr for hello program#written by emdoor

    cc=gcc

    cflags=

    all:hello

    cc) $cflags) -o hello(cc) $cflags) -c -o

    phony: clean

    clean:

    rm -rf hello *.o

    其内容如下:包括

    int main()

    运行信息:root@yuanbing ] makegcc -c -o

    gcc -o hello

    root@yuanbing ~]# ./helloyuanbing

    root@yuanbing ~]#

    下来,绝对可用。

  2. 匿名用户2024-01-28

    phony: clean

    此行已删除并试用。

    ps:我不知道如何使用makefile,我只是觉得这一行不正常。

  3. 匿名用户2024-01-27

    您的 makefile 没有目标,因此 make 将您的编译命令视为注释。 要开始学习,您可以使用伪目标,例如:

    phony:all

    all:g++ o server

    g++ o client

    假的:All意味着ALT都是伪目标,以后遇到他的时候,他遵循的命令会直接执行,不加判断。 您甚至可以添加 linux 命令,例如:

    phony:all

    all:g++ o server

    g++ o client

    ls -lps -l &&date

    记住 Tab 键。

    开始学习 makefile 就足够了。

    制作makefile的难点在于理解别人在写什么,可以搜索“和我一起学习写makefile”。

  4. 匿名用户2024-01-26

    makefile 需要将目标作为目标,并且存在建议更改 makefile 的依赖项

    gcc -o server

    gcc -o client

    gcc

  5. 匿名用户2024-01-25

    target…

    prerequisite…

    tab) 命令

    格式解释。

    target:生成的对象,可以是可执行文件,也可以是中间对象。

    先决条件:生成目标所需的文件。

    command:make 是需要执行的命令,一般是编译和链接命令,命令前面必须有 Tab 键才能生效。

    一个 makefile 的简单示例(包含:

    生成文件和源文件位于新的命令文件夹中; 然后进入控制台,切换到命令目录,直接输入make will be born with two files,如下图所示:

    控制台下的命令:

    命令说明: gcc c:编译命令目录下的源文件,编译后会生成中间文件。

    rm:删除命令目录下的 AND 文件。

    :输出一个可执行文件,上面写着hello world!

    make:make 命令与 make exe 命令具有相同的效果。

  6. 匿名用户2024-01-24

    :flex

    g++ fo

    gcc -o

    final:

    g++ lfl final

    将其保存到名为 makefile 的程序目录中,然后将其 cd 到该目录并尝试一下。

    flex 是一个用于生成 c 文件的词法生成器,但是我不太知道如何具体使用 g++,也不熟悉它,所以命令应该是错误的,makefile 格式和我上面写的一样,下面的长空格是 tab

    而你的 -lfl 我理解他是 GCC 的参数。

    我可以给你发一个pdf的制作makefile的规则,你看完后基本上会用到makefile。

    mengxinghun_

    其余的人坐下来等待标准答案。

  7. 匿名用户2024-01-23

    你从基础开始,首先了解如何手动编译,然后学习 makefile 语法,最后自己编写 makefile。

    您现在的 makefile 订单有问题。 我想在不编译的情况下运行它,并且没有运行时的路径。

    标准 makefile:

    run: hello

    hellohello:

    cc -o hello

    简单明了。

  8. 匿名用户2024-01-22

    我认为暗示很清楚。

    您的 makefile 在制作时指示(默认值为 all)。 首先执行 exec 变量的内容。 也就是说,hello,然后 make 当然不能运行,并且它退出并出现错误。

    ps:我也不用makefile控制。 从你不明白发生了什么的提示来看,你完全不知道 Linux 的东西。

    我建议学习自动配置器,如 automake 和 autoconf。 至少你不必编写自己的 makefile,为一个大项目编写自己的 makefile 会杀死你。

  9. 匿名用户2024-01-21

    我想编译 delete cdr write cron 的两个可执行程序并将它们直接复制到家中,我应该如何修改这个 makefile? 这是如何做到的,将以下三句话添加到makefile中,并且不要对点和Tab键犯错误。

    phony:install

    install:

    cp delete_cdr write_cron /home; chmod 775 delete_cdr write_cron ;

  10. 匿名用户2024-01-20

    所有目标生成都需要依赖 delete cdr write cron。 但是这两个文件,没有规则来编译和生成它们。

    由于定义了 cdrexe = delete cdr write cron

    我认为至少需要添加一个类似的规则。

    就是如何通过删除生成删除cdr,通过写入生成写cron

  11. 匿名用户2024-01-19

    edit : /

    cc -o edit /

    这意味着这些对象链接到名为 edit 的可执行文件。 cc 是 gcc 编译器。

  12. 匿名用户2024-01-18

    原始 makefile 中的依赖项是(source first, target last)。

    => ===> m1

    定义的目标的依赖与命令行中的依赖相同,修改定义的依赖会导致目标被重新编译,修改后的依赖也会被更改

    => m2

    您定义的目标依赖与编译命令中的依赖不一致,编译系统只是根据命令行中的默认依赖进行编译,在修改定义的依赖时不会导致目标被重新编译。

  13. 匿名用户2024-01-17

    因为,m2:$(obj) 其中 m2 只是一个指示符,可以写成任何值。 此处的修改不会造成问题。

    这个地方,虽然是错的,没有执行,但是在编译cc -c的时候默认找到的,所以没有影响,是巧合。

  14. 匿名用户2024-01-16

    1. 不是makefile文件,而是main函数没有写在应用程序中。

    此错误是由 LD 链接过程生成的,而不是由编译过程生成的。

  15. 匿名用户2024-01-15

    你为什么不发布 makefile 的内容?

    看起来您正在使用一些不合适的编译选项。

    如果 gcc 参数后面有“-d”,则可以将其删除。

    让我们看看 makefile 中是否有任何变量的定义有问题。

    另外,看看“main”功能o“文件是否包含在输入文件中链接。

  16. 匿名用户2024-01-14

    $(cc) $o $@

    修改为 $(cc) $cflags) $o $@

    这将生效。 ldflags 类似,您需要自己编写。

  17. 匿名用户2024-01-13

    我认为你的 makefile 写得不正确,就你说的 cflags 和 ldflags 而言,有定义,但没有参考,它怎么可能有用。

  18. 匿名用户2024-01-12

    : $objs)

    cc) $cflags $ldflags $^o $@

    尝试将其修改为上述内容。

相关回答
4个回答2024-06-25

Linux 目录树:

scripts 目录。 >>>More

16个回答2024-06-25

建议使用32位,建议使用CentOS Linux; Linux64位系统占用的内存比较多,如果内存足够大,90%的用户都可以使用,也就是普通用户,32位支持很多软件,应该说几乎所有的比特系统都比较了,尤其是对于特殊职业的版本,比如设计、架构和大型显卡。

13个回答2024-06-25

Samba 服务是关于跨不同平台的文件共享。

5个回答2024-06-25

free 的输出包含物理内存 mem 和交换分区的具体用法,如总内存、已用内存、缓存、可用内存等。 其中 cache 是缓冲区和缓存的总和。 >>>More

16个回答2024-06-25

grep 将模式视为正则表达式,而 fgrep 将模式视为固定字符串,因此后者比前者快,当然后者的搜索功能也比前者弱。