执行程序在C ++中从父目录打开父目录中的文件

时间:2014-05-02 05:05:57

标签: c++ makefile

我的项目结构如下:

├── Makefile
├── data
├── src
│   ├── ...other code
│   └── main.cpp
└── bin
    └── out

程序将查看父目录并打开放在那里的文件,打开文件的代码如下:

f.open("../data");

它将在bin(二进制文件所在的位置)生成一些临时文件,代码如下:

f.open("temp");

我的makefile如下所示:

SOURCES=src/main.cpp src/foo.cpp
OBJECTS=$(SOURCES:.cpp=.o)

EXECUTABLE=bin/out

all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(OBJECTS) -o $@

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm src/*.o $(EXECUTABLE)

test:
    bin/out arg1 arg2

load:
    bin/out arg1 arg2

.PHONY: test load

现在,我可以从父目录make,然后进入bin,执行程序。但是,如果我只是从父目录运行datamake load,程序无法打开父目录中的make test

1 个答案:

答案 0 :(得分:1)

您可以将cd放在make配方命令中:

test:
     cd bin; ./out arg1 arg2

请勿忘记执行

的同一行中的cd