Есть ли какие-нибудь флаги для gcc, чтобы избежать связи с неиспользуемыми общими библиотеками? - PullRequest
0 голосов
/ 02 апреля 2019
echo "void main(){}" |gcc -xc -lm -lpthread -o test - && ldd test

Вот пример. На самом деле я не использую математические функции. Но gcc по-прежнему связывается с libm.so , наконец. Существуют ли какие-либо флаги оптимизации, позволяющие gcc не связываться с libm.so в таком случае?

Ответы [ 2 ]

1 голос
/ 06 апреля 2019

Я наконец-то узнаю результат.-Wl, - по мере необходимости для этого случая.

1 голос
/ 02 апреля 2019

В

echo "void main () {}" | gcc -xc -lm -lpthread -o test - && ldd test

-lm явно запрашивает связь с libm.so , gcc как хороший мальчик просто следует вашему запросу.

Может быть, у вас есть веская причина для связи, gcc / ld не может знать, почему вы это делаете, и не может самостоятельно решить не следовать вашему запросу, и нет опция -dontDoWhatIaskYouToDo ^^

Если вы не хотите ссылаться на эту библиотеку, не просите ссылаться на нее

...