Ответ 1
Вы можете отключить префикс с помощью этой строки:
set_target_properties(foo PROPERTIES PREFIX "")
Я пытаюсь написать cmake-правила для создания динамически загруженной библиотеки для python, используя boost.python on linux. Я хотел бы использовать 'foo' для имени модуля python. Итак, библиотеку нужно называть foo.so
.
Но по умолчанию cmake использует стандартные правила для именования библиотек, поэтому, если я пишу
add_library(foo foo.cpp)
Я получу libfoo.so
на выходе.
Даже set_target_properties(foo PROPERTIES OUTPUT_NAME "foobar")
создаст libfoobar.so
.
Как изменить это поведение?
Вы можете отключить префикс с помощью этой строки:
set_target_properties(foo PROPERTIES PREFIX "")
Префикс "lib" - это соглашение для unix/linux и широко используется компиляторами (например, когда вы связываете ссылку write -lfoo).
Я не знаю, могу ли заставить cmake создать foo.so вместо libfoo.so, но, возможно, вы можете использовать libfoo для модуля python. Другой вариант - создать цель установки в cmake, которая будет renmae libfoo.so в foo.so