Я написал Makefile для более простого способа запуска модульных тестов (по умолчанию целью является test).Структура каталогов выглядит следующим образом:
lib
- каркас тестирования google c ++
src
- исходные файлы
test
- модульные тесты
В src
у меня есть файлы a.h
, a.cc
, b.cc
(которые содержат main), и я хочу проверить класс A()
, который определен в a.h
.В общем, потому что порядок связывания:
g++ -Wall -c -o obj/src/a.o src/a.cc
g++ -Wall -c -o obj/src/b.o src/b.cc
g++ -o all obj/src/a.o
Я получаю ошибку:
(.text+0x18): undefined reference to main'
collect2: ld returned 1 exit status
make: *** [all] Error
, хотя на самом деле мне не нужен main()
, определенный в src
, так как у меня уже есть main()
, определенный в test
, который выполняет модульные тесты.