#makefile #g #googletest
Вопрос:
Я пытаюсь создать исполняемый файл для использования с Google Test Framework. Это делается путем связывания файлов *.o и *.a(созданных другой сборкой) и gtest_main.a. Оба набора двоичных файлов создаются компилятором g , который поставляется с QNX 6.5.0. Но я сталкиваюсь со слишком длинным списком аргументов, за которым следует ошибка make: *** [тест] Ошибка 126
Вот фрагмент файла Makefile
CXX=$(QNX_HOST)/usr/bin/ntox86-g
LD = $(QNX_HOST)/usr/bin/ntox86-g
LDFLAGS =
-L$(QNX_HOST)/usr/lib/gcc/i486-pc-nto-qnx6.5.0/4.4.2
-L$(QNX_TARGET)/x86/lib/gcc/4.4.2
-L$(QNX_TARGET)/usr/i486-pc-nto-qnx6.5.0/lib
-L$(QNX_TARGET)/x86/lib
-L$(QNX_TARGET)/x86/usr/lib
-L$(QNX_TARGET)/x86/opt/lib
-lm
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
# For simplicity and to avoid depending on Google Test's
# implementation details, the dependencies specified below are
# conservative and not optimized. This is fine as Google Test
# compiles fast and for ordinary users its source rarely changes.
gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c
$(GTEST_DIR)/src/gtest-all.cc
gtest_main.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c
$(GTEST_DIR)/src/gtest_main.cc
gtest.a : gtest-all.o
$(AR) $(ARFLAGS) $@ $^
gtest_main.a : gtest-all.o gtest_main.o
$(AR) $(ARFLAGS) $@ $^
@echo "$(MAKEFILE_LIST)"
test: gtest_main.a $(SRC)libqam/libqam.a $(SRC)lib/libam.a
$(LD) $(LDFLAGS) -o $@ $(qobjs) $^
$(SRC)libqam/libqam.a $(SRC)lib/libam.a и qobjs создаются другим файлом Makefile с использованием той же цепочки инструментов компилятора. qobjs содержит более 100 файлов *.o.
Когда я запускаю тест make, я сталкиваюсь со следующей ошибкой.
/bin/sh: C:/QNX650/host/win32/x86/usr/bin/ntox86-g : Список аргументов слишком длинный Файл создания:383: рецепт для целевого «теста» не удалось создать: *** [тест] Ошибка 126
Я проверил размер ulimit и попытался увеличить его, но это не сработало.