[问题] 编译DLL

楼主: swampni   2018-10-16 00:49:08
开发平台(Platform): (Ex: Win10, Linux, ...) Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出) GCC & vc++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...) eigen
问题(Question):
不知道在这个版问适不适当
我的目标是写c++编译成dll丢到python里面去加速python的一些运算
但我目前遇到的问题是:
我只能用mingw的++编译出32bits的DLL
没有办法用mingw64的g++编译出64bits的DLL
64bits的编出来丢到python里面就会报[winError 193] %1 不是有效的win32应用程式
所以后来我就载了visual studio 2017然后用vcvarsall.bat amd64
然后用cl编译我的dll
虽然这样就成功了,但是比起用g++的慢非常多,大概是10倍左右
所以想请问各位大大我可能做错的地方在哪里?
附上我编译用的参数
g++: g++ -c -I.\eigen -O2 xxx.cpp
g++ -o xxx.dll xxx.o
cl:cl /LD /EHsc -I .\eigen /O2 "xxx.cpp"
补充说明(Supplement):
其实没怎么写过c++
对mingw什么的其实也都不太懂
所以如果这是一个很蠢的问题还请各位海涵>_<
作者: Lipraxde (Lipraxde)   2018-10-16 01:10:00
不是有效的win32应用程式?那你给他64的干啥
作者: uranusjr (←這人是超級笨蛋)   2018-10-16 07:58:00
你 Python 那边是怎么用这个 DLL 的?在大多数情况是不能把 MinGW binary 喂给 CPython, ABI 不一样
作者: Lipraxde (Lipraxde)   2018-10-16 22:30:00
你的 python 是32还64?

Links booklink

Contact Us: admin [ a t ] ucptt.com