Не ясно, чего именно вы пытаетесь достичь и как это связано с ошибкой компоновки.Но способ запуска команд с пользовательскими переменными среды следующий:
add_custom_command(
...
COMMAND ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=..."
actual command line that you need to execute
)
Таким образом, -E env
работает так, что выполняет все, что передано после спецификации переменной env.
Обратите внимание, однако, то, что вы не можете использовать несколько COMMAND
аргументов и устанавливать env в первом, используя его в следующих COMMAND
s - это не будет работать.Или, по крайней мере, это зависит от генератора.С Make backend это транслируется в несколько вызовов shell - поэтому он устанавливает env, но остальные команды выполняются отдельно и не видят его.Генератор ниндзя переводит несколько COMMAND
в нечто вроде cmd1 && cmd2 && ...
, поэтому он работает там, AFAIK.