/usr/bin/ntox86-g : слишком длинный список аргументов при попытке связать двоичные файлы тестового модуля и google framework

#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 и попытался увеличить его, но это не сработало.