Я пишу модуль С++ для Python3. Чтобы заставить Python работать с ним, мне нужно собрать исходный код C++ в динамическую библиотеку (одно из требований — совместимость с Windows).
Исходный код правильно скомпилирован и слинкован с Cmake (мой генератор cmake — Visual Studio 12 2013 Win64). Но тогда мне нужно собрать файл .dll
из файлов Cmake. Список файлов Cmake, если здесь:
Обратите внимание, в этом списке нет файла Makefile!
Как я могу собрать .dll
из этих файлов? Я пробовал MinGW и GNUwin32, но они не работали.
Мой 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})
Note, there isn't Makefile in this list!
В Visual Studio не должно быть make-файла. У вас есть все необходимое для сборки в ide. Вы даже можете открыть командную строку Visual Studio и выполнитьcmake --build .
из папки, содержащей файл .sln, или использовать msbuild. - person drescherjm   schedule 14.09.2015LINK : fatal error LNK1104: cannot open file 'python34_d.lib' [D:\VeLKerr\Docum ents\proglangs\Build\repeating_count.vcxproj]
- person VeLKerr   schedule 14.09.2015cmake --build .
создается отладочная версия. Вам нужно запуститьcmake --build . --config Release
, чтобы собрать релизную версию. - person Rostislav   schedule 14.09.2015python34.lib
вместоpython34_d.lib
в сообщении об ошибке. У меня есть оба,python34.lib
иpython34_d.lib
на моем ПК. - person VeLKerr   schedule 14.09.2015