cpptask упорядочение статических библиотек в командной строке gcc - PullRequest
3 голосов
/ 20 марта 2010

Как заставить cpptask переместить статические библиотеки в конец списка аргументов, выданного компилятору?

Вот пункт, который я использую

   <cpptasks:cc description="appname" subsystem="console" objdir="obj" outfile="dist/app_test">
            <compiler refid="testsslcc" />      
            <linkerarg value="-L${libdir}" />   
            <linkerarg value="-L/usr/local/devl/lib" />
            <linkerarg value="-Wl,-rpath,../lib" />
            <libset libs="unittest ${libs} dsg readline ncurses gcov" />
            <fileset dir="test/obj" includes="main.o" />
            <fileset dir="." includes="${TCFILES}" />
            <fileset dir="../lib" includes="libboost_thread.a libboost_date_time.a" />                                                     
    </cpptasks:cc> 

когда это выполняется, libboost_thread.a libboost_date_time.a - первые файлы в списке аргументов, переданные компилятору,

gcc -ggdb -Wl,-export-dynamic -Wshadow -Wno-format-y2k  \
    ../../lib/libboost_date_time.a ../../lib/libboost_thread.a x.cpp ...

, что вызывает ошибку компилятора. Перемещая их вручную в конец списка аргументов, приложение компилируется без ошибок.

gcc -ggdb -Wl,-export-dynamic -Wshadow -Wno-format-y2k x.cpp ... \
    ../../lib/libboost_date_time.a ../../lib/libboost_thread.a  

И да, я пытался изменить порядок в xml, и это, конечно, не сработало. Сейчас я использую задачу exec для вызова gcc с файлами в правильном порядке, но это, конечно, подделка.

1 Ответ

0 голосов
/ 20 марта 2010

Попробуйте изменить fileset с архивами на libset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...