Я пишу модуль C++ для Python3. Чтобы заставить Python работать с ним, я должен создать источник C++ в динамической библиотеке (одним из требований является совместимость с Windows).Создание динамической библиотеки из файлов Visual Studio
Исходный код правильно скомпилирован и связан с Cmake (мой генератор cmake - это Visual Studio 12 2013 Win64). Но тогда я должен создать файл .dll
из файлов Cmake. Список файлов Cmake, если здесь:
Примечание: в этом списке нет Makefile!
Как я могу построить .dll
из этих файлов? Я пробовал MinGW и GNUwin32, но trey не работали.
Мои CMakeLists.txt ниже:
cmake_minimum_required(VERSION 3.2)
set(CMAKE_VERBOSE_MAKEFILES on)
project(Proj)
set(SOURCE_FILES repeating_count.cpp)
set(BUILD_SHARED_LIBS ON)
set(CMAKE_VERBOSE_MAKEFILE on)
find_package(PythonLibs 3.4 REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
python_add_module(repeating_count repeating_count.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_executable(Proj ${SOURCE_FILES})
target_link_libraries(Proj ${PYTHON_LIBRARIES})
'Обратите внимание, что в этом списке нет Makefile!' В visual studio не должно быть make-файла. У вас есть все, что нужно, чтобы построить идеал. Вы даже можете открыть командную строку визуальной студии и сделать 'cmake --build .' из папки, содержащей файл .sln, или использовать msbuild. – drescherjm
@drescherjm, ok, я использовал VS command promt и поймал ошибку: 'LINK: фатальная ошибка LNK1104: не могу открыть файл 'python34_d.lib' [D: \ VeLKerr \ Docum ents \ proglangs \ Build \ repeatating_count.vcxproj]' – VeLKerr
@VeLKerr Я считаю, что комментарий не был связан с вашей реальной проблемой. Ошибка, которую вы видите, исходит из того, что по умолчанию для VS 'cmake --build .' будет создана версия отладки. Вам нужно запустить 'cmake --build. --config Release', чтобы изменить версию выпуска. – Rostislav