В IDE может быть загружен другой набор динамических библиотек, поскольку ваше приложение наследует другую среду, которая затем используется динамическим компоновщиком для поиска библиотек. Смотрите на странице руководства dyld переменные среды, которые могут повлиять на поведение динамического компоновщика. Ваша IDE должна иметь опции для управления этим.
Если вы все еще хотите убедиться, что ваше приложение запускается из процесса, в котором ваша IDE не является предком, вы можете настроить IDE для запуска такой команды:
bash -c 'your_app &'
это заставит bash запустить your_app в фоновом режиме и выйти. Когда родительский процесс (здесь: bash) завершается, дочерний процесс (здесь: your_app) принимается процессом init, что означает, что init (PID = 1) становится его родителем. Однако, опять же, это не повлияет на загруженные библиотеки.
Вы также можете запустить серверный скрипт, который ожидает сигнала (используя команду trap) и запускает ваше приложение, когда оно его получает. Ваша IDE должна быть настроена на запуск команды kill для отправки сигнала на сервер. Таким образом, вы будете запускать ваше приложение в той же среде, что и ваш терминал. Это, вероятно, излишнее решение.
Я рекомендую попытаться настроить IDE таким образом, чтобы дочерний процесс использовал нужные библиотеки.