ฉันมีไฟล์ .c ที่มี Python.h อยู่ และฉันต้องการคอมไพล์มัน
นี่คือสิ่งที่ฉันกำลังเข้าสู่บรรทัด cmd ในขณะนี้ cl -IC:\[...]\Python35\include -IC:\[...]\Python35\libs TestFilePython.c
ซึ่งส่งผลให้เกิดข้อผิดพลาด: LINK : fatal error LNK1104: cannot open file 'python35.lib'
ฉันพบสิ่งนี้ ซึ่งดูเหมือนว่าจะเหมาะสมที่สุดสำหรับคำถามของฉัน แต่ฉัน ไม่สามารถระบุได้ว่า LIBPATH
s ใดที่ฉันควรรวมไว้ ใครสามารถช่วยฉันในเรื่องนั้นได้บ้าง?
แก้ไข: โอเค จริงๆ แล้วฉันใช้ cpp ดังนั้น setup.py จึงมีลักษณะดังนี้:
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(
"TestFilePython.pyx", # our Cython source
language="c++", # generate C++ code
))
การรัน python setup.py build_ext --inplace
ส่งผลให้มีการสร้าง .cpp (.c ก่อนตัวเลือกภาษา)
ตอนนี้ฉันกำลังพยายามคอมไพล์ .cpp นั้น ขณะค้นหา ฉันเพิ่งเจอแนวคิดที่ฉันต้องรวมตัวเลือกแบบฝังไว้ (ซึ่งอาจช่วยแก้ปัญหาจุดเข้าใช้งานไม่ได้) แต่ยังคงพยายามดูว่าฉันสามารถทำอะไรได้บ้าง
TestFilePython.pyx เป็นเพียง: print("Hello World")
หากถูกถาม ฉันยังสามารถพิมพ์เนื้อหาของ cpp ที่สร้างขึ้นได้
/link /LIBPATH:C:\[...]\Python35\libs
นอกจากนี้ ตัวเลือกตัวเชื่อมโยงจะต้องแสดงอยู่หลังไฟล์ต้นฉบับ - person Eryk Sun   schedule 16.01.2016cl -IC:\Users\[...]\Python35\include TestFilePython.cpp /link /LIBPATH:C:\Users\[...]\Python35\libs
ทำให้ฉันเกิดข้อผิดพลาดentry point must be defined
- person Nimitz14   schedule 16.01.2016main
หรือwmain
หากคุณกำลังสร้าง DLL/PYD ให้ใช้cl /LD ...
- person Eryk Sun   schedule 16.01.2016import TestFilePython
หรือไม่ - person Eryk Sun   schedule 16.01.2016don't know how to compile c/c++ code on platform 'nt' with 'msvs' compiler
มันให้ไฟล์ .cpp แก่ฉันซึ่งเป็นสิ่งที่ฉันสามารถใช้งานได้ ฉันใช้ VS2015 มีคนบอกฉันว่าควรจะใช้งานได้ และฉันวางแผนที่จะติดตั้งใหม่ในบางจุด แต่ก่อนที่ฉันจะทำเช่นนั้น ฉันคิดว่าฉันจะลองหาทางแก้ไขก่อน - person Nimitz14   schedule 16.01.2016import distutils.ccompiler;
distutils.ccompiler.get_default_compiler()
มันควรจะเป็น 'msvc' - person Eryk Sun   schedule 16.01.2016--compiler=msvc
ต่อท้าย ฉันใช้ msvs มาตลอด - person Nimitz14   schedule 16.01.2016