makefile - 为什么我需要`sudo` 来`make all`?
问题描述
我正在使用 hzeller 的 LED 库,这是我找到的 make 文件之一:
CXXFLAGS=-Wall -O3 -g -Wextra -Wno-unused-parameter
OBJECTS=MP_Display.o
BINARIES=MP_Display
# RGB_LIB_DISTRIBUTION, this is where the library is checked out.
RGB_LIB_DISTRIBUTION=rpi-rgb-led-matrix
RGB_INCDIR=$(RGB_LIB_DISTRIBUTION)/include
RGB_LIBDIR=$(RGB_LIB_DISTRIBUTION)/lib
RGB_LIBRARY_NAME=rgbmatrix
RGB_LIBRARY=$(RGB_LIBDIR)/lib$(RGB_LIBRARY_NAME).a
LDFLAGS+=-L$(RGB_LIBDIR) -l$(RGB_LIBRARY_NAME) -lrt -lm -lpthread -lcurl
all : $(BINARIES)
$(RGB_LIBRARY): FORCE
$(MAKE) -C $(RGB_LIBDIR)
Metrici_MP_Display: Metrici_MP_Display.o $(RGB_LIBRARY)
$(CXX) $(CXXFLAGS) Metrici_MP_Display.o -o $@ $(LDFLAGS) $(MAGICK_LDFLAGS)
%.o : %.cc
$(CXX) -I$(RGB_INCDIR) $(CXXFLAGS) -c -o $@ $<
Metrici_MP_Display.o : Metrici_MP_Display.cc
$(CXX) -I$(RGB_INCDIR) $(CXXFLAGS) $(MAGICK_CXXFLAGS) -c -o $@ $<
clean:
rm -f $(OBJECTS) $(BINARIES) $(OPTIONAL_OBJECTS) $(OPTIONAL_BINARIES)
FORCE:
.PHONY: FORCE
为什么我需要使用sudo make all
而不是make all
编译代码?
我希望生成的文件不属于 root。
解决方案
可能是因为您已经运行过sudo make ...
一次,并且它创建了一些属于root
. 现在你既不能覆盖也不能删除它们sudo
。
sudo chown --recursive <your user>.<your group> *
在您的项目目录中运行。
推荐阅读
- reactjs - 如何通过锚标签传递道具?
- android - 使用 ImagePicker 库从图库上传图像并使用 Glide 库在 ImageView 中设置
- c# - 从 RDB 文件中读取数据
- ios - 将观察者添加到自身或对象有什么区别?
- node.js - Sequelize `findOne` 工作不如预期
- python - 为什么我的 Django 应用程序停止在 App Engine 环境中构建
- javascript - 如何使用 vscode 重新排序参数?
- java - JHipster:没有身份验证的 Web 服务
- java - 试图在单独的行上打印字符串中的一个单词
- javascript - 云函数 onUpdate:无法读取未定义的属性“forEach”