Даже если исполняемый файл не вызывает напрямую какие-либо функции pybind11, он связывается anaconda3/lib/libstdc++.so.6, который, похоже, не поддерживает cpp23.
- conanfile.py (для пакета)
Код: Выделить всё
# ...
self.requires("pybind11/[*]") # try to use pybind11, if remove this and corresponding commands in CMakeLists.txt, it links the libstdc++.so in 'usr/lib'
# ...
- CMakeLists.txt (для пакета)
Код: Выделить всё
# ...
set(CMAKE_CXX_STANDARD 23) # this project uses cpp23
# ...
Короче, без self.requires("pybind11/[*]") все работает нормально. При попытке использовать pybind11 он связывает libstdc++.so с anaconda3/lib, который может не поддерживать cpp23.
Есть ли какое-либо решение такой проблемы при использовании cpp23 и pybind11?
- Ошибка
Код: Выделить всё
agtb/0.0.6-1115 (test package): RUN: cmake --build "/home/azusa/file/project/AGTB/test_package/build/gcc-14-x86_64-gnu23-release" -- -j20
[ 50%] Building CXX object CMakeFiles/Adjustment_Traverse.dir/src/Adjustment/Traverse.cpp.o
[100%] Linking CXX executable Adjustment_Traverse
[100%] Built target Adjustment_Traverse
======== Testing the package: Executing test ========
agtb/0.0.6-1115 (test package): Running test()
agtb/0.0.6-1115 (test package): RUN: ./Adjustment_Traverse
./Adjustment_Traverse: /home/azusa/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by ./Adjustment_Traverse)
ERROR: agtb/0.0.6-1115 (test package): Error in test() method, line 64
self.run(cmd) # self.run(cmd, env="conanrun") leads to the same result
ConanException: Error 1 while executing
Подробнее здесь: https://stackoverflow.com/questions/798 ... d-cpp23-in
Мобильная версия