make:make文件的“ all”错误无需采取任何措施

阿纳加(Anagha)

我正在编写一个make文件来运行它:

gcc program_1.c -lgsl -lgslcblas -o program_1
./program_1

这是我的makefile

CC=gcc
CFLAGS=-c -Wall
LDFLAGS=-g 
LIBS= -lgsl -lgslblas
SOURCES=program_1.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=program_1

all: $(SOURCES) $(EXECUTABLE)
        ./$(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
        $(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $@

.c.o:
        $(CC) $(CFLAGS) $< -o $@

但是,在运行make时出现此错误:

make: Nothing to be done for `all'.

我阅读了关于makefile和man make页面的各种教程,但我仍然陷入困境。如果您有任何解决此问题的建议,请告诉我。谢谢!

编辑:在乔纳森·勒夫勒的建议之后

gcc -I/usr/include/gsl program_1.c -o program_1.o
/tmp/ccLJo81U.o: In function `main':
program_1.c:(.text+0xb1): undefined reference to `gsl_matrix_view_array'
program_1.c:(.text+0xce): undefined reference to `gsl_matrix_view_array'
program_1.c:(.text+0xd8): undefined reference to `gsl_permutation_alloc'
program_1.c:(.text+0x128): undefined reference to `gsl_matrix_get'
program_1.c:(.text+0x1b6): undefined reference to `gsl_linalg_LU_decomp'
program_1:(.text+0x1d6): undefined reference to `gsl_linalg_LU_invert'
program_1.c:(.text+0x21f): undefined reference to `gsl_matrix_get'
program_1.c:(.text+0x29c): undefined reference to `gsl_permutation_free'
collect2: error: ld returned 1 exit status
make: *** [program_1.o] Error 1

我知道只有在使用make时,它才能识别出在program_1.c中使用的GNU GSL库。您以前是否遇到过类似的问题?

乔纳森·勒夫勒(Jonathan Leffler)

如果您已正确编写了代码,并使用#include <gsl/gsl_XXXXX.h>了包括GSL标头的符号(如GSL(GNU科学库)文档中的示例程序中所述),则不需要该-I /usr/include/gsl选项-除非您隐藏了GSL/usr/include/gsl/gsl目录中的标题,似乎不太可能。

您的makefile应该大约是:

CC      = gcc
CFLAGS  = -g -Wall
LDFLAGS = 
LDLIBS  = -lgsl -lgslcblas
SOURCES = program_1.c
OBJECTS = $(SOURCES:.c=.o)
PROGRAM = program_1

all: $(SOURCES) $(PROGRAM)
        ./$(PROGRAM)

$(PROGRAM): $(OBJECTS)
        $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@

这与您所拥有的非常接近。我已重命名为EXECUTABLEPROGRAM以便主要名称具有相同的长度(很傻,但是…)。我删除了该.c.o规则,因为make已经知道如何将C代码编译为目标文件,并使用与您显示的规则类似的规则-内置规则包括一个显式-c标志,您当前正在丢失该标志。

链接行包括CFLAGS,而CFLAGS包括-g用于在构建中包含调试信息选项。

您已经在目标文件之后包含了库;这是重要且正确的。

库名称已更新-lgslcblas以匹配注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打开本地文件时需要采取任何预防措施吗?

来自分类Dev

OpenWrt工厂VLAN设置,无需采取任何措施?

来自分类Dev

如何从任何目录运行make文件?

来自分类Dev

Windows 10会非常缓慢地删除许多小文件。可以采取任何措施来加快速度吗?

来自分类Dev

Sphinx make 文件可能使用了错误的 docutils 文件

来自分类Dev

make:“ makefile”无需执行任何操作

来自分类Dev

make:“ makefile”无需执行任何操作

来自分类Dev

Makefile make:“默认”无需执行任何操作

来自分类Dev

make:“构建”无需执行任何操作

来自分类Dev

Catkin Make错误,DJI SDK启动文件错误

来自分类Dev

闪存可以持续多长时间而无需采取任何措施?

来自分类Dev

设计措施(不采取备份措施)以确保文件系统的可靠性和完整性?

来自分类Dev

如何使Vim Quickfix在源文件而不是Make文件中显示错误

来自分类Dev

如何处理make头文件的“无此类文件或目录”错误?

来自分类Dev

如何自动打开应用程序,而无需用户在收到Android推送通知时采取任何措施

来自分类Dev

安装失败了吗?(make [2]:“安装”无需执行任何操作。)

来自分类Dev

make [2]:*** [sub-make]错误2 make [1]:*** [all]错误2

来自分类Dev

使用Make通过g ++进行编译时出现“错误的命令或文件名”错误

来自分类Dev

Make:错误停止编译

来自分类Dev

make []:*** []错误1

来自分类Dev

sudo make返回错误

来自分类Dev

make []:*** []错误1

来自分类Dev

Make:libowfat上的错误

来自分类Dev

Make:错误编译.o

来自分类Dev

错误 make distcheck

来自分类Dev

如何避免“ make clean” Makefile目标出现“无此文件或目录”错误

来自分类Dev

使用make的“严重错误:gtk / gtk.h:没有这样的文件或目录”

来自分类Dev

运行make移动二进制文件时,自制程序引发错误

来自分类Dev

致命错误:glew.h:使用 make 时没有这样的文件或目录

Related 相关文章

  1. 1

    打开本地文件时需要采取任何预防措施吗?

  2. 2

    OpenWrt工厂VLAN设置,无需采取任何措施?

  3. 3

    如何从任何目录运行make文件?

  4. 4

    Windows 10会非常缓慢地删除许多小文件。可以采取任何措施来加快速度吗?

  5. 5

    Sphinx make 文件可能使用了错误的 docutils 文件

  6. 6

    make:“ makefile”无需执行任何操作

  7. 7

    make:“ makefile”无需执行任何操作

  8. 8

    Makefile make:“默认”无需执行任何操作

  9. 9

    make:“构建”无需执行任何操作

  10. 10

    Catkin Make错误,DJI SDK启动文件错误

  11. 11

    闪存可以持续多长时间而无需采取任何措施?

  12. 12

    设计措施(不采取备份措施)以确保文件系统的可靠性和完整性?

  13. 13

    如何使Vim Quickfix在源文件而不是Make文件中显示错误

  14. 14

    如何处理make头文件的“无此类文件或目录”错误?

  15. 15

    如何自动打开应用程序,而无需用户在收到Android推送通知时采取任何措施

  16. 16

    安装失败了吗?(make [2]:“安装”无需执行任何操作。)

  17. 17

    make [2]:*** [sub-make]错误2 make [1]:*** [all]错误2

  18. 18

    使用Make通过g ++进行编译时出现“错误的命令或文件名”错误

  19. 19

    Make:错误停止编译

  20. 20

    make []:*** []错误1

  21. 21

    sudo make返回错误

  22. 22

    make []:*** []错误1

  23. 23

    Make:libowfat上的错误

  24. 24

    Make:错误编译.o

  25. 25

    错误 make distcheck

  26. 26

    如何避免“ make clean” Makefile目标出现“无此文件或目录”错误

  27. 27

    使用make的“严重错误:gtk / gtk.h:没有这样的文件或目录”

  28. 28

    运行make移动二进制文件时,自制程序引发错误

  29. 29

    致命错误:glew.h:使用 make 时没有这样的文件或目录

热门标签

归档