LINUX.ORG.RU

Как передать атрибут в gcc

 , ,


0

1

Во втором ответе на этот вопрос перечислены какие-то атрибуты (attribute((visibility(default)))), я попробовал добавить их в аргументы, но cc пишет no such file or directory. Что с этим делать?

https://stackoverflow.com/questions/15861759/how-much-overhead-can-the-fpic-flag-add

атрибуты (attribute((visibility(default)))), я попробовал добавить их в аргументы

Их в код вставляют, а в аргументы gcc вставляют -fvisibility=hidden

imul ★★★★★ ()
Ответ на: комментарий от gradle

А куда в код?

прямо, чуть наискосок справа...

 

gcc -fvisibility=hidden main.c -o main.bin

это если напрямую.

а если в проекте, то через переменную в скрипте(или прямо из командной строки) например:

 

CFLAGS="-fvisibility=hidden -trahtibidoh=bidohohoh" ./configure

make

или оно же но напрямую:


CFLAGS="-fvisibility=hidden -trahtibidoh=bidohohoh" make

язык имеет значение Си это CFLAGS , С++ это CXXFLAGS. Еще можно такой финт ушами :

Перед сборкой объявить переменную самого компилятора принудительно(но так делать дурной тон):


export CC="gcc -fvisibility=hidden -trahtibidoh=bidohohoh"
export CPP="g++ -fvisibility=hidden -trahtibidoh=bidohohoh"

тогда любое классическое упоминание компилятора в системе сборки будет автоматом прописываться строкой указанной в кавычках, дополняя то, что уже указано в makefile проекта.

но прежде читай доки по своей системе сборки, коих как грязи - autotools, cmake, qmake, meson... .

Gramozeka ★★ ()
Ответ на: комментарий от gradle

Ты думаешь я совсем тупой чтобы не знать как в cflags передать?

что я думаю о тебе я умолчу, но выше комрад тебе уже сказал - правильно заданный вопрос → 51% правильного ответа.

Если тебе нужны ответы как сочинять файлы, то покажи свой пример кода и спрашивай по существу: «в пункте №3 я не врубаю строку №2, нахрена я её написал?»

Стебать дураков - не велика заслуга, да и удовольствие так себе... Хочешь конкретный ответ - задавай конкретный вопрос.

https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html

Как-то так.

Gramozeka ★★ ()
Последнее исправление: Gramozeka (всего исправлений: 1)