2015-08-05 1 views
1

в этой темеCFLAGS и LDFLAGS против CPATH и library_path

https://unix.stackexchange.com/questions/149359/what-is-the-correct-syntax-to-add-cflags-and-ldflags-to-configure

кто-то говорит, что CFLAGS и LDFLAGS не работают с каждым сценария конфигурации. Зачем? Я хотел бы получить больше объяснений по этому поводу, а не только к утверждению;) В каких обстоятельствах это работает и под которым это не так? Каковы причины?

Он (принятый ответ) также упоминает, что вместо этого вы должны использовать CPATH и LIBRARY_PATH. В чем разница между CFLAGS и CPATH? Точно также в чем разница между LDFLAGS и LIBRARY_PATH?

Последний вопрос: когда я использую LDFLAGS = независимо от того, не переопределяю ли предыдущие определения LDFLAGS, которые могли быть сделаны самим разработчиком? Не должен ли синтаксис быть чем-то вроде ./configure LDFLAGS + =/myPath?

ответ

0

CFLAGS/LDFLAGS используется ./configure, CPATH/LIBRARY_PATH используется GCC/MinGW компилятор/линкер. Если ./configure написано хорошо, он сначала получает CFLAGS/LDFLAGS из среды перед добавлением каких-либо путей к нему и вызовом компилятора/компоновщика. В этом случае, вы можете использовать

CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure 

Современные ./configure S может принимать CFLAGS/LDFLAGS в качестве параметров

./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" 

но если ./configure беден или старый, только CPATH/LIBRARY_PATH может помочь

CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib ./configure 
CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib make 

Altenatives to CPATH/LIBRARY_PATH для Microsoft Компилятор Visual C++ - INCLUDE/LIB.