Skip to content

Use INTERFACE library for petsird #163

@KrisThielemans

Description

@KrisThielemans

#161 created a petsird library for convenience of using it.

As there are no actual source files in the library at the moment, I tried the following

add_library(petsird INTERFACE)
target_link_libraries(petsird INTERFACE petsird_generated)
target_include_directories(petsird INTERFACE "${PROJECT_SOURCE_DIR}/generated")

but this failed with linking errors

: && /home/sirfuser/mambaforge/envs/prd/bin/x86_64-conda-linux-gnu-c++ -fvisibility-inlines-hidden -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/sirfuser/mambaforge/envs/prd/include -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/home/sirfuser/mambaforge/envs/prd/lib -Wl,-rpath-link,/home/sirfuser/mambaforge/envs/prd/lib -L/home/sirfuser/mambaforge/envs/prd/lib helpers/CMakeFiles/petsird_generator.dir/petsird_generator.cpp.o -o helpers/petsird_generator  /home/sirfuser/mambaforge/envs/prd/lib/libhdf5.so  /home/sirfuser/mambaforge/envs/prd/lib/libcrypto.so  /home/sirfuser/mambaforge/envs/prd/lib/libcurl.so  -lpthread  /home/sirfuser/mambaforge/envs/prd/lib/libsz.so  /home/sirfuser/mambaforge/envs/prd/lib/libz.so  /home/sirfuser/mambaforge/envs/prd/x86_64-conda-linux-gnu/sysroot/usr/lib/libdl.so  /home/sirfuser/mambaforge/envs/prd/x86_64-conda-linux-gnu/sysroot/usr/lib/libm.so  /home/sirfuser/mambaforge/envs/prd/lib/libhdf5_cpp.so  /home/sirfuser/mambaforge/envs/prd/lib/libhdf5.so  /home/sirfuser/mambaforge/envs/prd/lib/libcrypto.so  /home/sirfuser/mambaforge/envs/prd/lib/libcurl.so  -lpthread  /home/sirfuser/mambaforge/envs/prd/lib/libsz.so  /home/sirfuser/mambaforge/envs/prd/lib/libz.so  /home/sirfuser/mambaforge/envs/prd/x86_64-conda-linux-gnu/sysroot/usr/lib/libdl.so  /home/sirfuser/mambaforge/envs/prd/x86_64-conda-linux-gnu/sysroot/usr/lib/libm.so  /home/sirfuser/mambaforge/envs/prd/lib/libhdf5_cpp.so  /home/sirfuser/mambaforge/envs/prd/lib/libopenblas.so  -lpthread  -lm  -ldl && :
/data/mambaforge/envs/prd/bin/../lib/gcc/x86_64-conda-linux-gnu/13.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: helpers/CMakeFiles/petsird_generator.dir/petsird_generator.cpp.o: in function `petsird::hdf5::PETSIRDWriter::~PETSIRDWriter()':
petsird_generator.cpp:(.text._ZN7petsird4hdf513PETSIRDWriterD2Ev[_ZN7petsird4hdf513PETSIRDWriterD5Ev]+0xc): undefined reference to `vtable for petsird::hdf5::PETSIRDWriter'

Something subtle about OBJECT libraries in CMake (as petsird_generated is one), I guess. @casperdcl @naegelejd @johnstairs Any ideas?

Originally posted by @KrisThielemans in #161 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions