Браконы на Windows: kernel32.lib - PullRequest
1 голос
/ 26 октября 2009

У меня есть файл SConstruct для scons:

env = Environment()
env.Append(CPPPATH = ['./'])
env.Append(LIBS = 'kernel32.lib')
env.Append(LIBPATH = 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib')

env.SharedLibrary(target='warpLib', source='warplib.cpp')

Если я не введу 'kernel32.lib' и не укажу LIBPATH, я получу ошибку ссылки. Мое решение работает, но не выглядит очень портативным ... Что является лучшим, более портативным решением?

Ответы [ 3 ]

3 голосов
/ 05 ноября 2009

Используйте объявление SCons 'DefaultEnvironment (ENV = os.environ)'.

0 голосов
/ 07 ноября 2009

Я предпочитаю использовать следующий синтаксис, потому что он напоминает мне, что я в конечном итоге использую Python и предпочитаю использовать собственные команды списка Python, чем их псевдо-эквиваленты SCons. Кроме того, это помогает мне помнить, что CPPATH, LIBS, LIBPATH и т. Д. Являются списками.

env = Environment()
env["CPPPATH"].extend(["."])
env["LIBS"].extend(["kernel32","someotherlib"]) #No need to specify the ".lib". This gives you platform-independance automatically.
env["LIBPATH"].extend(["C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib"])
0 голосов
/ 28 октября 2009

Вместо вызова scons из стандартной командной строки используйте командную строку visual studio, которая правильно настроит все переменные среды

...