Я пытаюсь заставить SCons сделать общую библиотеку. Одним из элементов, входящих в .so
, является .a
статическая библиотека.
У меня есть строка типа:
env_2.SharedLibrary('libstuff.so', \
Split("""stuff.cxx mylib/libMine.a""")
И при запуске я получаю эту ошибку:
scons: *** Source file: mylib/libMine.a \
is static and is not compatible with shared target: libstuff.so
Однако я знаю, что общую библиотеку можно создать из .a
с помощью такой команды:
g++ -m32 -shared -o libstuff.so stuff.o mylib/libMine.a
Будем очень признательны за любые идеи о том, как заставить это работать или какие-либо обходные пути.
Смежный вопрос: как заставить scons поместить дополнительную строку -shared
в командную строку LINK для вызова Program()
? Если бы я мог это сделать, я думаю, это удовлетворило бы мои потребности.