写一个js用make文件去调用编译器编译c语言生成bin文件的项目
时间: 2024-03-15 22:45:57 浏览: 16
可以尝试使用以下的makefile和JavaScript代码来实现该功能。
makefile:
```makefile
CC = gcc
CFLAGS = -Wall -Werror
SRC_DIR = src
OBJ_DIR = obj
BIN_DIR = bin
TARGET = $(BIN_DIR)/output.bin
SRCS = $(wildcard $(SRC_DIR)/*.c)
OBJS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(OBJ_DIR)/*.o $(BIN_DIR)/*
```
JavaScript代码:
```javascript
const { exec } = require('child_process');
const makeCommand = 'make';
const makeOptions = ['all'];
exec(`${makeCommand} ${makeOptions.join(' ')}`, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.error(`stderr: ${stderr}`);
});
```
以上代码的作用是通过makefile编译C语言源代码,并生成可执行文件。JavaScript代码使用`child_process`模块中的`exec`函数来执行make命令,并将结果输出到控制台。请注意,此代码仅适用于Unix或Linux系统。如果您使用的是Windows系统,则需要相应地更改makefile和JavaScript代码。