Итак, я действительно делаю это в одном из моих проектов.
Во-первых, библиотека должна быть собрана с помощью ADD_LIBRARY (), но я предполагаю, что вы делаете это. Что-то вроде
ADD_LIBRARY (${MyLibName} ${SOURCES})
в CMakeLists.txt библиотеки
, которое добавляет библиотеку в список библиотек cmake.
Во-вторых, вы добавляете библиотеку в свой проект с помощью
target_link_libraries (${PROJECT_NAME} ${MyLibName})
в CMakeLists.txt исполняемого файла, того же, где у вас есть add_executable (${PROJECT_NAME} ${SOURCES})
, который будет настраивать цепочка зависимостей для принудительного создания MyLibName перед PROJECT_NAME.
Попробуйте использовать обратные ссылки:
sed 's/.*\(searchstring\).*/___\1___/'
. *
вокруг строки поиска будут соответствовать всему, кроме строки, а скобки сообщают sed
запомнить что это соответствует. Вы можете сослаться на первую совпавшую строку с помощью \ 1
.
Вот пример (замена всего, кроме 'bar baz'):
$ echo "foo bar baz qux" | sed 's/.*\(bar baz\).*/___\1___/'
___bar baz___
Вы можете заменить 'bar baz' любым шаблоном, который вам нравится в вышеупомянутое; Я просто использовал простую строку для простоты.