Как скомпилировать под Linux?
Closed this issue · 5 comments
Нужны только tools.
Интересуют версии пакетов.
Пробовал собирать на Linux Mint 17.2. Но не взлетает.
libboost 1.54
libboost_python-2.7
libboost_python-3.4
Какие версии вы использовали?
Я думаю, что дело в поиске boost-python3.
Попробуйте сделать так:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a1cdae3..5b7cce2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,12 +7,12 @@ FIND_PACKAGE(Threads REQUIRED)
FIND_PACKAGE(SDL2 REQUIRED)
FIND_PACKAGE(SDL2_mixer REQUIRED)
FIND_PACKAGE(OpenGL REQUIRED)
-FIND_PACKAGE(Boost COMPONENTS thread system python3 REQUIRED)
+FIND_PACKAGE(Boost COMPONENTS thread system python REQUIRED)
FIND_PACKAGE(Freetype REQUIRED)
FIND_PACKAGE(Iconv REQUIRED)
FIND_PACKAGE(JsonCpp REQUIRED)
FIND_PACKAGE(Libintl REQUIRED)
-FIND_PACKAGE(PythonLibs REQUIRED)
+FIND_PACKAGE(PythonLibs 3 REQUIRED)
IF(BUILD_TESTS)
ENABLE_TESTING()
diff --git a/Engine/CMakeLists.txt b/Engine/CMakeLists.txt
index f58f5f4..26b2434 100644
--- a/Engine/CMakeLists.txt
+++ b/Engine/CMakeLists.txt
@@ -78,7 +78,7 @@ TARGET_LINK_LIBRARIES(engine
${FREETYPE_LIBRARIES}
${Boost_THREAD_LIBRARY}
${Boost_SYSTEM_LIBRARY}
- ${Boost_PYTHON3_LIBRARY}
+ ${Boost_PYTHON_LIBRARY}
${JSONCPP_LIBRARIES}
${SDL2_MIXER_LIBRARY}
${LIBINTL_LIBRARIES}
@@ -92,7 +92,7 @@ TARGET_LINK_LIBRARIES(engine
${FREETYPE_LIBRARIES}
${Boost_THREAD_LIBRARY}
${Boost_SYSTEM_LIBRARY}
- ${Boost_PYTHON3_LIBRARY}
+ ${Boost_PYTHON_LIBRARY}
${JSONCPP_LIBRARIES}
${SDL2_MIXER_LIBRARY}
${LIBINTL_LIBRARIES}
Если у вас по-умолчанию выбрана третья версия python, то всё должно скомпилироваться и заработать.
С другой стороны, если вам нужны только tools, то, возможно, они заработают и с python2.
Спасибо, помогло
Да есть версия 2.7 и 3.4
Но если переключаю как вы говорите. Все равно не собирает.
Извиняюсь за назойливость. Но можете помочь скомпилировать только tools?
`
+#SET(PYTHON_INCLUDE_PATH /usr/include/python3.4)
+#SET(PYTHON_INCLUDE_DIR /usr/include/python3.4)
+#SET(PYTHON_LIBRARIES /usr/lib/x86_64-linux-gnu/libpython3.4m.so)
+#SET(PYTHON_EXECUTABLE /usr/bin/python3.4)
+#SET(PYTHON_INCLUDE_PATH /usr/include/python2.7)
+#SET(PYTHON_INCLUDE_DIR /usr/include/python2.7)
+#SET(PYTHON_LIBRARIES /usr/lib/x86_64-linux-gnu/libpython2.7.so)
+#SET(PYTHON_EXECUTABLE /usr/bin/python2.7)
+#FIND_PACKAGE(Boost COMPONENTS thread system python-py27 REQUIRED)
+#FIND_PACKAGE(Boost COMPONENTS thread system python-py34 REQUIRED)
`
Если выбираю версию 34 то валится в одном месте, если 27, то в другом
libengine.so.0.1: undefined reference to boost::python::detail::str_base::str_base(char const*, unsigned long)
Либо
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_python.so: undefined reference to
PyClass_Type'`