首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libboost_python.so py32.so代替libboost_python.so进行cmake链接

使用libboost_python.so py32.so代替libboost_python.so进行cmake链接
EN

Stack Overflow用户
提问于 2013-03-04 01:54:12
回答 1查看 2.5K关注 0票数 9

我正在尝试为我编写的一个库构建python绑定,但我遇到了一些问题,让cmake理解它应该使用python3的boost-python库。

下面是我的cmake文件:

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE(Boost COMPONENTS
                system
                thread
                python REQUIRED)
find_package(PythonLibs REQUIRED)

INCLUDE_DIRECTORIES(${PYTHON_LIBRARIES})
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})

ADD_LIBRARY(
  pschulze SHARED
  src/candidate_relation.cpp
  src/schulze.cpp
  src/calculate.cpp
  src/candidate.cpp
  src/ranking.cpp
  src/userinput.cpp
  python.cpp)

TARGET_LINK_LIBRARIES(pschulze ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})

ADD_EXECUTABLE(
  schulze
  src/candidate_relation.cpp
  src/schulze.cpp
  src/calculate.cpp
  src/candidate.cpp
  src/ranking.cpp
  src/userinput.cpp
  src/json-spirit/json_spirit_reader.cpp
  src/json-spirit/json_spirit_value.cpp
  main.cpp)

TARGET_LINK_LIBRARIES(schulze ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})

ADD_DEFINITIONS(-std=gnu++0x -Os)

add_subdirectory (tests)

set(CMAKE_BUILD_TYPE Debug)

这是我得到的链接器错误:

代码语言:javascript
复制
Linking CXX executable schulze
CMakeFiles/schulze.dir/src/schulze.cpp.o: In function `arg_to_python':
/usr/include/boost/python/converter/builtin_converters.hpp:122: undefined reference to `PyInt_FromLong'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libboost_python.so: undefined reference to `PyString_Size'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-27 21:56:06

这可能会起到作用:

代码语言:javascript
复制
set(Python_ADDITIONAL_VERSIONS 3.2)

find_package(Boost COMPONENTS system thread python-py32 REQUIRED)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15188760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档