Есть библиотека c ++, с которой я пытался связать статически и динамически. Я сгенерировал файл .so и установил его по пути, правильно установив имя_установки, LIBRARY_PATH и LD_LIBRARY_PATH.
Но проблема в том, что я не вижу никакой разницы в размере исполняемого файла, производимого в обоих случаях
Мой Makefile выглядит следующим образом:
# dynamic linking
alld:
g++ -std=c++11 -O3 main.cpp -o main -lpthread -lm -ldlib
alls:
# static linking
g++ -std=c++11 -O3 main.cpp -o main /Users/prakhar/bin/lib/static/dlib.a -lpthread -lm
В обоих случаях я получаю одинаковый размер исполняемого файла.
Когда я статически связываю и удаляю библиотеку, она все еще работает. Так что это действительно статически связано. Но когда я динамически связываю и удаляю разделяемую библиотеку, она вообще не запускается.
Почему это происходит?
Я использую MacOS Catalina.