运行vk: command not found
时得到vk
,而执行bash: ./vk: No such file or directory
时得到./vk
。
我做了一些研究,原因通常是它是64位计算机上的32位exe
make将输出构建到vk/_target
。我cd
到_target
当我运行file vk
时,我会回来的。
vk:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接,解释器/ lib / ld6,未剥离
我尝试执行chmod +x vk
和chmod u+x vk
。我尝试了将./vk
和vk
与chmod
一起键入的每种组合。我在这里茫然。我已经将-m64
作为gcc
的选项,但是这似乎是默认设置。
这是我的makefile文件
CFLAGS = -m64 -Wall -O3
CC = gcc
LINKER = ld -lc --entry main
DUMP = objdump
COPY = objcopy
TARGET_DIR = _target
SRCS := $(shell find ./ -name \*.c)
VPATH := $(sort $(dir $(SRCS)))
OBJS := $(patsubst %.c,$(TARGET_DIR)/%.o,$(notdir $(SRCS)))
$(TARGET_DIR)/vk : $(OBJS)
$(LINKER) $^ -o $@
$(DUMP) -D $@ > $(@:=.list)
$(TARGET_DIR)/%.o : %.c folders
@echo "compiling $<"
$(CC) $(CFLAGS) -c $< -o $@
@echo "assembly dump $@"
$(DUMP) -D $@ > $@.list
.PHONY: folders
folders:
mkdir -p $(TARGET_DIR)
.PHONY: clean
clean:
rm -rf $(TARGET_DIR)