Я пытаюсь создать какую-нибудь программу, которая использует opencv в python.Я должен сделать некоторые работы в режиме реального времени.Так что я делаю пользовательский интерфейс и другие вещи на python, и делаю основную программу на C ++.Я пытаюсь использовать distutils, но это сводит меня с ума.
import os
from distutils.core import setup, Extension
import distutils.sysconfig
# Variable Set
OPENCV_ROOT_DIR = "D:\\opencv"
# Internal variables
OPENCV_INCLUDE_DIR = OPENCV_ROOT_DIR + "\\build\\include"
OPENCV_LIBRARY_DIR = OPENCV_ROOT_DIR + "\\build\\x64\\vc15\\lib"
OPENCV_DLL_DIR = OPENCV_ROOT_DIR + "\\build\\x64\\vc15\\bin"
OPENCV_LIBRARY = "opencv_world343"
customCore = Extension("myCore",
sources=[
os.path.dirname(os.path.realpath(__file__)) + "\\src.cpp",
],
include_dirs=[
OPENCV_INCLUDE_DIR,
],
library_dirs=[
OPENCV_LIBRARY_DIR,
],
libraries=[
OPENCV_LIBRARY
])
setup(name="myCore",
version="1.0",
description="My Core program",
ext_modules=[customCore],
data_files=[(distutils.sysconfig.get_python_lib(), [OPENCV_DLL_DIR + "\\" + OPENCV_LIBRARY + ".dll"])]
)
С моим рабочим столом этот setup.py не создает никаких проблем.Тем не менее, мой ноутбук делает ошибку связывания, которая
opencv_world343.lib (opencv_world343.dll): фатальная ошибка LNK1112: тип компьютера модуля «x64» конфликтует с типом целевой машины «X86»
И мой ноутбук, и настольный компьютер используют Windows 10 64bit.Я не знаю, почему это делает ошибку.Разница только в версии opencv.Мой рабочий стол использует 3.4.2, а мой ноутбук - 3.4.3.Это различие делает проблему ..?