Я работаю над Solaris 10, Sun Studio 11. Я занимаюсь рефакторингом старого кода и пытаюсь написать для них модульные тесты. Мой make-файл выглядит так:
my_model.o:my_model.cc
CC -c my_model.cc -I/../../include -library=stlport4 -instances=extern
unit_test: unit_test.o my_model.o symbol_dictionary.o
CC -o unit_test unit_test.o my_model.o symbol_dictionary.o -I../../include \
-library=stlport4 -instances=extern
unit_test.o: unit_test.cc
CC -c unit_test.cc -I/../../include -library=stlport4 -instances=extern
symbol_dictionary.o:
cd ../../test-fixtures && ($MAKE) symbol_dictionary.o
mv ../../test-fixtures/symbol_dictionary.o .
В make-файле ../../test-fixtures у меня есть следующая цель:
symbol_dictionary.o:
CC -c symbol_dictionary.cc -I/../../include -library=stlport4 -instances=extern
Я делаю instances = extern, потому что раньше у меня были проблемы с компоновкой, и это было рекомендуемое решение. В результате для каждого компилируемого каталога создается каталог SunWS_Cache для хранения экземпляров шаблона.
Это долгий путь к этому вопросу. Является ли общепринятой практикой объединение объектных файлов в одном каталоге перед их связыванием?