Я искал ответ на этот вопрос, но до сих пор дошел до конца.
Я строю библиотеки Eclipse Paho C и C ++.Я следовал инструкциям по созданию библиотеки C с использованием CMake.Поскольку я не хочу распространять разделяемые библиотеки на наши целевые машины, я собираюсь статически связать, поэтому я добавил для этого флаги.
cmake -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_DOCUMENTATION=TRUE -DPAHO_BUILD_STATIC=TRUE ../paho.mqtt.c
make
Это создает разделяемые библиотеки, а также четыре статические библиотеки.:
./src/libpaho-mqtt3cs-static.a
./src/libpaho-mqtt3a-static.a
./src/libpaho-mqtt3c-static.a
./src/libpaho-mqtt3as-static.a
Содержимое, по-видимому, является одним и тем же списком файлов, но их длина различна, поэтому я предполагаю, что они скомпилированы с различными параметрами.Ясно, что можно связать только одну библиотеку, но я не уверен, в чем различия, поэтому я не уверен, какую из них использовать.
Я предполагаю, что комбинации:
- Синхронный против Асинхронный
- SSL против без SSL?
Если эти предположения верны, то, возможно, a против c асинхронный против синхронизации (не уверенпочему ac, но что угодно), и те, которые заканчиваются на sa, являются версиями SSL.Но я только догадываюсь.
Кто-то точно знает?