如何使用curses.h为程序创建makefile

时间:2014-05-19 19:29:48

标签: c makefile pdcurses

我正在努力使用curses.h为下面的示例代码制作一个makefile。

#include <stdio.h>
#include <stdlib.h>
#include<curses.h>    

int main(){
WINDOW *initscr(void);
initscr();
int endwin(void);
return 0;
}

我在Netbeans中包含了库和标题,但是当我尝试使用makefile构建时:

CC=C:\TDM-GCC-64\bin\gcc
CFLAGS=-std=gnu99 -Werror -Wall -lm -lncurses
DEPS=curses.h
OUTPUT=main

all:
    echo "Building all"
    $(CC) $(CFLAGS) render.c -o $(OUTPUT)
它给了我:

echo "Building all"
Building all
C:\TDM-GCC-64\bin\gcc -std=gnu99 -Werror -Wall -lm -lncurses render.c -o main
render.c:3:19: fatal error: curses.h: No such file or directory
 #include<curses.h>
                   ^
compilation terminated.
make.exe": *** [all] Error 1

BUILD FAILED(退出值2,总时间:150ms)

1 个答案:

答案 0 :(得分:1)

只需添加-I。 -L。对于CFLAGS宏,这会将项目库添加​​到预处理器和链接集的搜索路径中。如果你在项目文件夹中有curses头文件和库文件,这应该可以工作。如果头文件或库文件位于不同的文件夹中,则只需相应地修改-I或-L标志。

您的上一条评论表明预处理和编译工作正常,但链接器无法找到库文件。

总的来说,最好将编译器标志放到CFLAGS和链接器标志到另一个宏,比如LDFLAGS。

宏DEPS也应该用于启用增量编译。它通常用作编译规则的依赖项,但由于你没有单独使用它,你可以把它放在除此之外:

all : $(DEPS)