Unable to import the CUDA backend (FMT linkage)
Description
I'm currently unable to work with the CUDA backend, because of an issue with the linkage of fmt
.
Here is the log when i try to import aidge_backend_cuda
:
Traceback (most recent call last):
File "/data1/is156025/bh277217/workspace/dev_cuda/test-backend.py", line 7, in <module>
import aidge_backend_cuda
File "/data1/is156025/bh277217/miniconda3/envs/main/lib/python3.10/site-packages/aidge_backend_cuda/__init__.py", line 1, in <module>
from aidge_backend_cuda.aidge_backend_cuda import * # import so generated by PyBind
ImportError: /data1/is156025/bh277217/miniconda3/envs/main/lib/python3.10/site-packages/aidge_backend_cuda/aidge_backend_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZNK3fmt3v106detail10locale_ref3getISt6localeEET_v
I attempted to manually link fmt
using the following snippet :
Include(FetchContent)
FetchContent_Declare(
fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
GIT_TAG 10.2.1 # or a later release
)
set(FMT_SYSTEM_HEADERS ON)
FetchContent_MakeAvailable(fmt)
set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON)
# ...
target_link_libraries(${module_name} PUBLIC fmt::fmt)
But it creates a conflict :
CMake Error at build/_deps/fmt-src/CMakeLists.txt:288 (add_library):
add_library cannot create ALIAS target "fmt::fmt" because another target
with the same name already exists.
CMake Error at build/_deps/fmt-src/CMakeLists.txt:340 (add_library):
add_library cannot create ALIAS target "fmt::fmt-header-only" because
another target with the same name already exists.
Any help would be appreciated !
EDIT : @olivierbichler Any idea about this ? :)
Edited by Benjamin Halimi