Подтвердить что ты не робот

Как вы переименовываете имя файла библиотеки в CMake?

Некоторые библиотеки следуют различным соглашениям для своих имен файлов, таких как библиотеки PAM - pam_unix.so, а не libpam_unix.so.

Как вы переопределите имя файла целевой библиотеки в CMake, чтобы получить что-то вроде new_thing.so вместо стандартного libnew_thing.so?

4b9b3361

Ответ 1

Используйте либо целевые свойства PREFIX, либо OUTPUT_NAME:

    set_target_properties(new_thing PROPERTIES PREFIX "")

или

    set_target_properties(new_thing PROPERTIES OUTPUT_NAME "new_thing")

Ответ 2

Так как это связано с именем файла, , вы можете подумать о install для ответа. (И, конечно же, есть предложение RENAME, но это красная селедка.)

Вместо этого измените target, используя команду set_target_properties.

Объекты библиотеки имеют встроенное свойство PREFIX. Другим релевантным является SUFFIX. Эти два свойства привязаны к целевому имени, чтобы определить окончательное имя файла при установке.

Для OQ:

# By default, the library filename will be `libnew_thing.so`
add_library(new_thing ${NEW_THING_SRCS})

# This changes the filename to `new_thing.so`
set_target_properties(new_thing PROPERTIES PREFIX "")

Скажем, вы также хотели, чтобы имя файла имело версию:

# This then changes the filename to `new_thing.so.1`,
# if the version is set to "1".
set_target_properties(new_thing
        PROPERTIES PREFIX ""
                   SUFFIX ".so.${NEW_THING_VER}"
        )