要构建的python distutils的CC

2024-09-28 21:00:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过python distutils构建c。我想用gcc替换CC并遵循这个page

CC=gcc python setup.py build

然后我得到了

gcc -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c hello.c -o build/temp.linux-x86_64-2.7/hello.o

creating build/lib.linux-x86_64-2.7

x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/hello.o -o build/lib.linux-x86_64-2.7/hello.so

CC只在第一阶段更改为gcc,它将变成原来的x86_64-linux-gnu-gcc,我不确定是否有什么遗漏,谢谢。在


Tags: buildsourcehellotimelinuxx86ccstrong
2条回答

必须用设置“CC”

os.environ["CC"] = "GCC"

但是,这有时在windows中不起作用,并且涉及到配置文件中的一些更改。在

  1. 创建文件“C:\Python27\Lib\distutils\分布.cfg“把这个写在里面

然后插入以下代码:

[build] compiler = gcc

  1. 从文件“C:\Python27\Lib\distutils”中删除“-mno cygwin”gcc选项的所有实例\cygwincompiler.py“:
  2. 在同一个文件中转换:

    self.set_executables(compiler='gcc -mno-cygwin -O -Wall', compiler_so='gcc -mno-cygwin -mdll -O -Wall', compiler_cxx='g++ -mno-cygwin -O -Wall', linker_exe='gcc -mno-cygwin', linker_so='%s -mno-cygwin %s %s' % (self.linker_dll, shared_option, entry_point))

    为此:

    self.set_executables(compiler='gcc -O -Wall', compiler_so='gcc -mdll -O -Wall', compiler_cxx='g++ -O -Wall', linker_exe='gcc', linker_so='%s %s %s' % (self.linker_dll, shared_option, entry_point))

我找到了答案here,LDSHARED是我需要的变量。在

完整的命令应该是这样的

CC=gcc LDSHARED=gcc -pthread -shared python setup.py build

相关问题 更多 >