Ошибка при компиляции при использовании pybind11 - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь скомпилировать базовый пример, скопированный и вставленный непосредственно из pybind11, с g++-8 на Mac.

Это код C ++ (example.cpp):

#include <pybind11/pybind11.h>

int add(int i, int j) {
    return i + j;
}

PYBIND11_MODULE(example, m) {
    m.doc() = "pybind11 example plugin"; // optional module docstring

    m.def("add", &add, "A function which adds two numbers");
}

Когда я использую следующую команду, она работает:

/usr/local/bin/g++-8 -O3 -Wall -shared -std=c++11 -fPIC -Wl,-undefined,dynamic_lookup `python3 -m pybind11 --includes` example.cpp -o example`python3-config --extension-suffix`

Однако, когда я добавляю -mcmodel=large, например, следующее

/usr/local/bin/g++-8 -Wall -shared -std=c++11 -mcmodel=large -fPIC -Wl,-undefined,dynamic_lookup `python3 -m pybind11 --includes` example.cpp -o example`python3-config --extension-suffix`

Это дастмне куча ошибок, которые выглядят так:

/ var / folder / zk / zxm107qd503bgh5qxvdhv6cr0000gv / T // ccbv0Hje.s: 75886: 19: ошибка: недопустимый вариант 'PLTOFF' movabsq $ __ ZdlPv @ PLTO,% rax

Я погуглил эту ошибку, но не смог найти полезную ветку.Кроме того, я хочу использовать g++ (не Xcode), так как он легкий и популярный в моем сообществе.Я пробовал разные версии g++ (6, 7 и 8), но вижу ту же ошибку.

Мне нужно использовать mcmodel=large, потому что для реального кода, с которым я имею дело, могут потребоваться большие объемы памяти.

Буду признателен за любую помощь.

...