Кажется, что библиотека Halide, созданная с помощью:
halide_library(xxx SRCS xxx_generator.cpp)
в CMakeLists.txt в подкаталоге, невидима для своих родительских или параллельных каталогов.
Например, у меня есть проект Halide, использующий CMake, например:
├── A
│ ├── a_generator.cpp
│ ├── a_run_generator.cpp
│ └── CMakeLists.txt
├── B
│ ├── b_run_generator.cpp
│ └── CMakeLists.txt
└── CMakeLists.txt
И в CMakeLists.txt в подпапке A у меня есть
halide_library(a_filter SRCS a_generator.cpp)
И я хочу связать библиотеку "a_filter" с "b_run_generator. cpp" в подпапке B следующим образом:
add_executable(b_run_generator b_run_generator.cpp)
target_link_library(b_run_generator PRIVATE a_filter)
CMake жалуется, что не может найти "a_filter".
И если я ссылаюсь на явный путь к «a_filter», появляется много ошибок, например:
/usr/bin/ld: ../genfiles/a/a.a(a.a.o): in function `a':
halide_buffer_t.cpp:(.text.a+0x82f): undefined reference to `halide_error_buffer_argument_is_null'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x8a3): undefined reference to `halide_error_buffer_allocation_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x8be): undefined reference to `halide_error_buffer_allocation_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x8d6): undefined reference to `halide_error_buffer_extents_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x8f1): undefined reference to `halide_error_buffer_allocation_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x90c): undefined reference to `halide_error_buffer_allocation_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x927): undefined reference to `halide_error_buffer_extents_too_large'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x943): undefined reference to `halide_error_device_dirty_with_no_device_support'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x95f): undefined reference to `halide_error_host_is_null'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x986): undefined reference to `halide_error_bad_type'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x9a2): undefined reference to `halide_error_bad_dimensions'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x9cc): undefined reference to `halide_error_access_out_of_bounds'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0x9e4): undefined reference to `halide_error_buffer_extents_negative'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0xa0e): undefined reference to `halide_error_access_out_of_bounds'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0xa2b): undefined reference to `halide_error_buffer_extents_negative'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0xa45): undefined reference to `halide_error_buffer_extents_negative'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0xa5f): undefined reference to `halide_error_buffer_extents_negative'
/usr/bin/ld: halide_buffer_t.cpp:(.text.a+0xa99): undefined reference to `halide_error_constraint_violated'
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
Итак, мой вопрос: как мне создать библиотеку галогенидов? в подкаталоге, видимом для его родительских или параллельных каталогов?