В настоящее время у меня есть проект тестирования Google C++, который полагается на другую программу, которая будет построена первой. В моем make-проекте тестового тестового теста google я пытаюсь получить все объектные файлы в тестируемом проекте. Так, например:Makefile, получающий все объектные файлы в каталоге
USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class1.o
USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class2.o
USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class3.o
Однако всякий раз, когда есть класс добавлены или удалены в проект, который проходит проверку, то я должен вручную изменить USER_OBJS в моем Makefile. С автоматическим тестированием это становится проблемой. Кто-нибудь знает, как я могу заставить USER_OBJS просто получить все объектные файлы в тестируемом проекте? Я пробовал следующее:
USER_OBJS := $(PROJECT_BEING_TESTED_PATH)/$(wildcard *.o)
Все еще не работает. Есть идеи?
первые строки отсутствующие '+ = ', так что они не работают, как предполагалось, но в этом нет ни здесь, ни там. Переместите переменную пути * в * подстановочный знак, чтобы make мог фактически выполнить правильный glob. Это говорит о том, что это не поможет, если этот make-файл должен * строить * те '.o' файлы, так как они не будут существовать при запуске' make'. В этом случае вам нужно получить этот список из файлов * source *, которые их создают. –
Я забыл добавить + = на строках выше. Если я перемещаю путь в подстановочный знак, это будет следующим: USER_OBJS: = $ ($ PATH/wildcard * .o) ?? – supraMan
Скажите мне. Это куда путь по глобусу? Какую часть 'wildcard' и' * .o' вы изменяете с помощью переменной пути (обратите внимание: не '$ PATH' ваша переменная' $ (PROJECT_BEING_TESTED_PATH) ')? –