代码之家  ›  专栏  ›  技术社区  ›  jen1982

静态增强python构建[关闭]

  •  0
  • jen1982  · 技术社区  · 6 年前

    我在谷歌上搜索了如何静态构建,但我仍然在努力运行这个。例如这个 Static linking with boost python ,我错了

    /python_u boost$g++-o hello.o-c hello.cpp-wall-fpic -i/usr/include/python2.7/python撸boost$g++-shared-o libhello.so hello.o-lpython2.7 /usr/lib/x86_64-linux-gnu/libboost_python.a /UR/BI/LD: /usr/lib/x86_64-linux-gnu/libboost_python.a(from_python.o):重新定位 对`.rodata.str1.8'的r_x86_64_32在生成 共享对象;用-fpic重新编译 /usr/lib/x86_64-linux-gnu/libboost_python.a:添加符号时出错:错误 值集合2:错误:ld返回1退出状态

    我做错什么了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Maxim Egorushkin    6 年前

    要链接到共享库的对象文件必须编译为独立于位置的代码。用 gcc clang 这需要 -fPIC 编译器命令行选项。静态的 .a 库通常在编译时没有这个选项,这就是您观察到这个链接器错误的原因。见 How to compile static library with -fPIC from boost.python 更多细节。