Команда qmake "system" иногда возвращает пустую строку, а не реальный ответ

Я часто использую или, возможно, злоупотребляю "системной" командой qmake в сценариях, интерпретируемых Qt Creator. В качестве примера команда

RESPONSE = $$system(ls)

будет в OSX заполнять список строк RESPONSE содержимым рабочего каталога. После этого в qmake можно выполнить много операций со строками с помощью RESPONSE.

Однако я заметил, что с такими утилитами XCode, как "CodeSign", существует системный ответ (как показано в "Окне компиляции" в Qt Creator), но этот ответ не помещается в RESPONSE.

Есть ли способ получить ответ от таких утилит, как codeign внутри qmake?

1 ответ

Решение

Эти утилиты выводят в stderr, а не в stdout. Вам нужно будет запустить их в оболочке оболочки, которая перенаправляет stderr в stdout, например bash -c 'codesign ... 2>&1'

Другие вопросы по тегам