Это «своего рода» возможно благодаря использованию gdb и setenv (3) , хотя мне трудно рекомендовать это делать. (Кроме того, то есть самая последняя версия Ubuntu на самом деле не позволит вам сделать это, не сказав ядру, чтобы он был более разборчив в отношении ptrace, и то же самое может пойти и на другие дистрибутивы).
$ cat setfoo
#! /bin/bash
gdb /proc/${PPID}/exe ${PPID} </dev/null
call setenv("foo", "bar", 0)
END
$ echo $foo
$ ./setfoo
$ echo $foo
bar
Я решил проблему. Я создавал 32-битные библиотеки, когда намеревался создавать 64-битные библиотеки. Я исправил свой оператор сборки и собрал 64-битные библиотеки, и теперь он работает.
Вот моя командная строка bjam:
C:\Program Files (x86)\boost\boost_1_38>bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-9.0 address-model=64 architecture=x86 --with-system