在Wesnoth构建的这段代码中,$ TESTFILE变量被替换为给定的路径。但在Windows路径变得无效,因为默认情况下,SCons subst()
不会在路径中转义反斜杠。有没有办法做到这一点 - 获取SCons File节点的绝对文件名与逃脱反斜杠?或者在代替时逃避反斜杠?SCons中的转义替换路径
test_program = '''
#include <SDL_mixer.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
Mix_Music* music = Mix_LoadMUS("$TESTFILE");
if (music == NULL) {
exit(1);
}
exit(0);
}
\n
'''
print Environment(TESTFILE = File("data/core/music/main_menu.ogg").rfile().abspath). \
subst(test_program)
输出:
#include <SDL_mixer.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
Mix_Music* music = Mix_LoadMUS("E:\wesnoth\scons\data\core\music\main_menu.ogg");
if (music == NULL) {
exit(1);
}
exit(0);
}
不,normpath在这里没有帮助。 –
'os.path.normpath(File(“data/core/music/main_menu.ogg”)。rfile()。abspath)'没有帮助。 –
这是什么产生的? – bdbaddog