Я создаю общую библиотеку с помощью команды CMake add_library следующим образом:
add_library(mylibname OPTION SHARED SOURCES ${source_files} HEADERS ${header_files})
Когда я проверяю эту библиотеку с помощью «nm», я обнаруживаю, что некоторые символы помечены как глобально видимые («T»)и другие видны только внутри библиотеки («t»).У меня вопрос, почему?От чего зависит видимость символа, когда я ничего не сделал для его управления?
Я спрашиваю, потому что так получилось, что когда я связываю эту библиотеку с другой частью проекта, я получаю неопределенные ссылочные ошибки иэто потому, что символы, которые мне нужны, по некоторым причинам видны только внутри библиотеки.Так что я хочу как-то изменить букву "t" на букву "T", но, поскольку я не знаю, почему она вообще является буквой "t", я полагаю, что сначала я бы хотел узнать это :).
Рассматриваемый символ является специализацией функции шаблона, так что, возможно, видимость по умолчанию имеет отношение к шаблонам или что-то в этом роде?