Mengkompilasi file .cpp dari baris cmd di windows, kesalahan tidak dapat membuka file 'python.lib

Saya memiliki file .c yang berisi Python.h dan saya ingin mengkompilasinya.

Inilah yang saya masukkan ke baris cmd saat ini cl -IC:\[...]\Python35\include -IC:\[...]\Python35\libs TestFilePython.c

Yang menghasilkan kesalahan: LINK : fatal error LNK1104: cannot open file 'python35.lib'

Saya menemukan ini yang tampaknya sangat cocok untuk pertanyaan saya, tetapi saya tidak tahu LIBPATHs apa yang harus saya sertakan. Bisakah seseorang membantu saya dengan itu?

edit: Oke, jadi saya sebenarnya menggunakan cpp sehingga setup.py terlihat seperti ini:

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(
           "TestFilePython.pyx",                 # our Cython source
           language="c++",             # generate C++ code
      ))

Menjalankan python setup.py build_ext --inplace menghasilkan .cpp yang dibuat (.c sebelum opsi bahasa)

Sekarang saya mencoba mengkompilasi .cpp itu. Saat mencari, saya baru saja menemukan gagasan bahwa saya perlu menyertakan opsi penyematan (ini mungkin menyelesaikan masalah tidak ada titik masuk), masih mencoba melihat apa yang bisa saya lakukan.

TestFilePython.pyx hanya: print("Hello World"), jika ditanya saya juga bisa mencetak isi cpp yang dibuat.


person Nimitz14    schedule 16.01.2016    source sumber
comment
Jangan [saya] sertakan lib impor. Direktori itu ditambahkan menggunakan /link /LIBPATH:C:\[...]\Python35\libs. Selain itu, opsi tautan harus dicantumkan setelah file sumber.   -  person Eryk Sun    schedule 16.01.2016
comment
cl -IC:\Users\[...]\Python35\include TestFilePython.cpp /link /LIBPATH:C:\Users\[...]\Python35\libs memberi saya kesalahan entry point must be defined   -  person Nimitz14    schedule 16.01.2016
comment
Jika Anda membuat executable, Anda memerlukan fungsi main atau wmain. Jika Anda membuat DLL/PYD gunakan cl /LD ....   -  person Eryk Sun    schedule 16.01.2016
comment
Saya mencoba membuat cython berfungsi. saya seharusnya tidak memerlukan fungsi utama...   -  person Nimitz14    schedule 16.01.2016
comment
@ Nimitz14 Bisakah Anda menunjukkan kode Anda kepada kami?   -  person fuz    schedule 16.01.2016
comment
File TestFilePython.cpp yang dicythonisasi seharusnya sudah dikompilasi dan ditautkan sebagai TestFilePython.pyd.   -  person Eryk Sun    schedule 16.01.2016
comment
ya, itu tidak berhasil, dan percayalah, saya sudah bertanya kepada banyak orang dan memilih untuk tidak membahas lubang kelinci itu. File .cpp seharusnya dapat dikompilasi secara manual dengan benar. Baru saja melihat komentar dll Anda, saya rasa saya akan mencoba sudut itu.   -  person Nimitz14    schedule 16.01.2016
comment
Mari kita turun ke lubang kelinci itu sebentar. Apakah Anda menjalankan Python di direktori yang memiliki modul ekstensi TestFilePython.pyd dan menjalankan import TestFilePython?   -  person Eryk Sun    schedule 16.01.2016
comment
Mengapa ini ditandai sebagai C ketika Anda mencoba mengkompilasi kode C++?   -  person fuz    schedule 16.01.2016
comment
@eryksun saat menjalankan setup.py tidak akan melakukan langkah terakhir karena karena alasan tertentu msvs tidak dapat dikompilasi, artinya .pyd tidak pernah dibuat. don't know how to compile c/c++ code on platform 'nt' with 'msvs' compiler, itu memberi saya file .cpp yang bisa saya kerjakan. Saya menggunakan VS2015, jadi orang-orang mengatakan kepada saya bahwa ini akan berfungsi, dan saya berencana untuk menginstalnya kembali suatu saat nanti, tetapi sebelum saya melakukannya, saya pikir saya akan mencoba dan mencari jalan keluarnya.   -  person Nimitz14    schedule 16.01.2016
comment
Versi Visual Studio apa yang telah Anda instal? Membangun ekstensi untuk Python 3.5 memerlukan Visual Studio 2015. Di Windows 10, saya baru saja melakukan Cythonisasi contoh TestFilePython.pyx dan membuat TestFilePython.cp35-win_amd64.pyd di tempatnya. Itu bekerja dengan baik.   -  person Eryk Sun    schedule 16.01.2016
comment
'msvs'? Mulai Python dan periksa import distutils.ccompiler; distutils.ccompiler.get_default_compiler(). Seharusnya 'msvc'.   -  person Eryk Sun    schedule 16.01.2016
comment
itulah adanya ;)   -  person Nimitz14    schedule 16.01.2016
comment
'msvs' atau 'msvc'? Jika tertulis 'msvs', hapus 3.5 dan unduh ulang/instal ulang 3.5.1.   -  person Eryk Sun    schedule 16.01.2016
comment
brengsek. Saya terlalu berharap tetapi tertulis msvc :( saya baru saja memeriksa mencoba mendapatkan .pyd dari .pyx tertulis 'msvs' (sesuatu yang aneh sedang terjadi...)   -  person Nimitz14    schedule 16.01.2016
comment
YA TUHAN. itu berhasil. hanya perlu menambahkan --compiler=msvc di akhir. saya selalu menggunakan msvs   -  person Nimitz14    schedule 16.01.2016
comment
Terima kasih atas kesabaran Anda!   -  person Nimitz14    schedule 16.01.2016