Почему некоторые из моих символов не отображаются в моем файле .so?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему некоторые из моих символов не отображаются в моем файле .so?

Сообщение Anonymous »


Я создаю собственное приложение для Android, в котором есть много файлов cpp и несколько файлов kt. Используя файлы cpp, я компилирую статические библиотеки, которые дают мне файлы с расширением .a, и в целом я объединяю их в файл .so.

Так как во время запуска будет вызываться собственное приложение System.loadLibrary("LibName"), которое вызывает JNI_onLoad (JavaVM * pJavaVM, void * pReserved).

Здесь возникает проблема: в одном из файлов Cpp у меня есть только две функции JNI_onLoad и JNI_OnUnload. Теперь, когда это происходит при дампе файла .so, я не вижу символов этих двух функций, но при дампе файла .a символы присутствуют.

Но если я создам статическую переменную и использую ее в JNI_onLoad, то в моем файле .so я смогу увидеть символы.

Я также просмотрел одну документацию по флагам компоновщика, где флаг «-E» относится к компоновщику для добавления всех символов в таблицу. Пробовал добавить и это, но не помогло.

Я что-то упустил? Не могу понять, почему это происходит. Заранее спасибо.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»