2015-11-13 15 views
-3

Здесь я компилирую код C со следующим Makefile.

MAIN: 
    g++ -c -o td.o -I/home/user/dp/pro/include td.c 
    g++ -c -o disk.o -I/home/user/dp/pro/include disk.c 
    g++ -o disk disk.o tds2.o -L ${DP_LIB} -L ${LIPN_LIB} -lgnb -lgtd -lnbl -lpin 
    ./disk.exe RUN.dat 

Какова цель -L ${DP_LIB}? Именно поэтому я хочу знать функцию ${}. Если ссылка на библиотеку отличается от -llib?

Этот файл makefile очень груб (я видел больше и лучше). Я новичок в make-файлах, но по крайней мере это работает.

+0

Пожалуйста, обратите внимание: 'g ++' содержит руководство, в котором вы можете посмотреть все. – reinierpost

ответ

2

Параметры -L указывают компоновщику, чтобы добавить путь к списку, который он использует для поиска библиотек. Вещь ${DP_LIB} заключается в том, как переменные используются в make-файлах. Предположительно DP_LIB - это путь куда-то.

Все это должно быть очень ясно, если вы просто прочитали документацию и фактический файл makefile.

1

С -L реж вы задаете каталог где компоновщик ищет для LIBS. Сами файлы lib задаются аргументом -l lib.

Пример:

-L/usr/X11R6/lib -lX11 

означает, что компоновщик будет искать libX11.so в /USR/X11R6/Библиотека (... и в других местах по умолчанию.)

Смежные вопросы