c - Makefile 适用于 OS X 但不适用于 Ubuntu

标签 c macos ubuntu

我想知道 StackOverflow 今天是否可以帮助我!所以我目前正在为我在 Uni 的一门 CS 类(class)完成一个 C 语言的项目,我遇到了一个有趣的问题。当我在我的 OSX 环境中使用命令“make”和“make test”时,它运行得很好,但是当我在 Ubuntu 虚拟机上测试它时,它给了我这些错误:

make: prim: 找不到命令

makefile:32: 目标配方'测试失败。

make: ***[test] 错误 127

下面是我的 makefile 代码,如有任何帮助,我们将不胜感激。

OBJS = main.o scanner.o AM.o binheap.o CDLL.o node.o prim.o vertex.o
OPTS = -Wall -Wextra -g -std=c99

main : $(OBJS)
    gcc $(OPTS) $(OBJS) -o prim -lm

main.o : main.c scanner.h AM.h binheap.h CDLL.h node.h prim.h vertex.h
    gcc $(OPTS) -c main.c

scanner.o : scanner.c scanner.h
    gcc $(OPTS) -c scanner.c

node.o : node.c node.h
    gcc $(OPTS) -c node.c

AM.o : AM.c AM.h
    gcc $(OPTS) -c AM.c

prim.o : prim.c prim.h
    gcc $(OPTS) -c prim.c

binheap.o : binheap.c binheap.h
    gcc $(OPTS) -c binheap.c
CDLL.o : CDLL.c CDLL.h
    gcc $(OPTS) -c CDLL.c

vertex.o : vertex.c vertex.h
    gcc $(OPTS) -c vertex.c

test: prim
     @echo ###############################
     @echo TESTING GRAPH1.TXT
     @echo prim graph1.txt
     @echo ###############################
     prim graph1.txt
     @echo ###############################
     @echo TESTING GRAPH2.TXT
     @echo prim graph2.txt
     @echo ###############################
     prim graph2.txt
     @echo ###############################

clean :
    rm -f $(OBJS) main

最佳答案

make: prim:Command not found

该错误消息告诉您出了什么问题。在 Ubuntu 上的 PATH 中找不到 prim。假设 prim 是您刚刚在本地目录中构建的程序,您应该在 Makefile 中运行 ./prim

关于c - Makefile 适用于 OS X 但不适用于 Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724787/

相关文章:

c - C 的非线性最小二乘优化库

c - 整数从字符串[]接收到错误的值

python - 导入错误 : cannot import name HTTPSHandler using Brew

c# - 以编程方式从 Xamarin.Mac 解决方案中打开文件

使用 vscode ctrl+f2 的 macos 无法按预期在 macos 上运行

Java 全屏模式不适用于 Ubuntu

linux - 如何使用 nasm 编译带有 .bss 部分的共享文件

c - 轻量级正则表达式解析器

c++ - 无法在 wxWIdgets 3.0 C++ 中连接焦点事件

c - 如何将字符 'G' 转换为字符串 "47"(十六进制)