Я неопытен в C ++, поэтому, возможно, мне не хватает правильных условий поиска.
Я хочу заменить несколько библиотечных функций моими собственными обертками во время выполнения. В основном, я хотел бы предоставить инструментальную версию библиотеки. В идеальном мире пользователям библиотеки не придется изменять свой код, чтобы использовать эту версию (или, самое большее, изменять только ссылки внутри CMakeLists.txt
).
Пользовательские исполняемые файлы часто объявляются как следует в файле CMake.
add_library(my_code ${SOURCES})
add_dependencies(my_code ${catkin_EXPORTED_TARGETS})
target_link_libraries(my_code ${catkin_LIBRARIES})
Я полагаю, что для достижения этого потребуется изменение target_link_libraries()
, чтобы ссылаться на другую версию.
Однако, даже если Я переопределяю все функции в исходном заголовке в том же пространстве имен, как я могу обратиться к исходной реализации?
namespace thelib {
void theFunction() {
// how do I call the original thelib::theFunction() here?
}
}