如何从Python脚本“导出CFLAGS='我的-标志-在这里'”?
我正在写一个Python程序,需要根据需要设置环境变量CFLAGS。
我使用了subprocess模块来执行一些操作,但我不确定这样做是否正确。
这个脚本会先设置CFLAGS,然后编译一些代码,所以在编译代码的时候,CFLAGS需要保持不变。
我知道在我的系统中有一个os.environ['CXXFLAGS']
,默认值是""。所以我的问题是,我只需要在编译代码之前设置os.environ['CXXFLAGS']
的值,还是需要用其他方法来做?
请给我一些建议。
2 个回答
1
你可以在不改变Python进程环境的情况下做到这一点。
# Make a copy of the environment and modify that.
myenv = dict(os.environ)
myenv["CXXFLAGS"] = "-DFOO"
# Pass the modified environment to the subprocess.
subprocess.check_call(["make", "install"], env=myenv)
0
通过修改 os.environ['CXXFLAGS']
来设置环境变量应该是可行的。不过,我一直以来给 ./configure
传递额外的 CXXFLAGS
的方法是直接在命令行中传递,比如:
cmd = [
'./configure',
'CXXFLAGS=-O2 -march=i586 -mtune=i686',
]
subprocess.Popen(cmd)
这样做的话,你就不需要在环境中设置 CXXFLAGS
,也不需要明确地传递给 make(autotools 会自动生成包含你自定义的 CXXFLAGS
的 Makefile)。