Я пытаюсь собрать Alexa SDK здесь: https://github.com/alexa/avs-device-sdk
Следовал руководству и смог создать SDK и пример приложения, но сгенерированные библиотеки являются DLL.
Мне нужно повторно-строить его для вывода файлов DEF и .A.
Осмотрел код и увидел его на build.make
(который, очевидно, был сгенерирован при первом сборке):
# External object files for target CapabilitiesDelegate
CapabilitiesDelegate_EXTERNAL_OBJECTS =
bin/libCapabilitiesDelegate.dll: CapabilitiesDelegate/src/CMakeFiles/CapabilitiesDelegate.dir/CapabilitiesDelegate.cpp.obj
bin/libCapabilitiesDelegate.dll: CapabilitiesDelegate/src/CMakeFiles/CapabilitiesDelegate.dir/build.make
bin/libCapabilitiesDelegate.dll: ACL/src/libACL.dll.a
bin/libCapabilitiesDelegate.dll: RegistrationManager/src/libRegistrationManager.dll.a
bin/libCapabilitiesDelegate.dll: C:/msys64/mingw32/lib/libcurl.dll.a
bin/libCapabilitiesDelegate.dll: AVSCommon/libAVSCommon.dll.a
bin/libCapabilitiesDelegate.dll: C:/msys64/mingw32/lib/libcurl.dll.a
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library ../../bin/libCapabilitiesDelegate.dll"
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/cmake.exe -E remove -f CMakeFiles/CapabilitiesDelegate.dir/objects.a
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/ar.exe cr CMakeFiles/CapabilitiesDelegate.dir/objects.a $(CapabilitiesDelegate_OBJECTS) $(CapabilitiesDelegate_EXTERNAL_OBJECTS)
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/g++.exe -DDEBUG -DACSDK_DEBUG_LOG_ENABLED -Wall -Werror -Wsign-compare -g -Wno-error=class-memaccess -DRAPIDJSON_HAS_STDSTRING -shared -o ../../bin/libCapabilitiesDelegate.dll -Wl,--out-implib,libCapabilitiesDelegate.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles/CapabilitiesDelegate.dir/objects.a -Wl,--no-whole-archive ../../ACL/src/libACL.dll.a ../../RegistrationManager/src/libRegistrationManager.dll.a -lcurl ../../AVSCommon/libAVSCommon.dll.a -lcurl -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
# Rule to build all files generated by this target.
CapabilitiesDelegate/src/CMakeFiles/CapabilitiesDelegate.dir/build: bin/libCapabilitiesDelegate.dll
Вверху этого файла увидел следующее:
# CMAKE generated file: DO NOT EDIT!
# Generated by "MSYS Makefiles" Generator, CMake Version 3.14
Итак ... 1. Есть мысли о том, как генерируется это build.make
?Я пытался найти на кассе, но не могу найти ссылку.Я надеюсь, что смогу изменить файл, который фактически генерирует этот build.make
, чтобы создать .a
(статический), а не .dll.a.
С этим:
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/cmake.exe -E remove -f CMakeFiles/CapabilitiesDelegate.dir/objects.a
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/ar.exe cr CMakeFiles/CapabilitiesDelegate.dir/objects.a $(CapabilitiesDelegate_OBJECTS) $(CapabilitiesDelegate_EXTERNAL_OBJECTS)
cd /C/Users/Thegeek/Desktop/Alexa/Alexa_32bit/build/CapabilitiesDelegate/src && /C/msys64/mingw32/bin/g++.exe -DDEBUG -DACSDK_DEBUG_LOG_ENABLED -Wall -Werror -Wsign-compare -g -Wno-error=class-memaccess -DRAPIDJSON_HAS_STDSTRING -shared -o ../../bin/libCapabilitiesDelegate.dll -Wl,--out-implib,libCapabilitiesDelegate.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles/CapabilitiesDelegate.dir/objects.a -Wl,--no-whole-archive ../../ACL/src/libACL.dll.a ../../RegistrationManager/src/libRegistrationManager.dll.a -lcurl ../../AVSCommon/libAVSCommon.dll.a -lcurl -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
Как я могу изменить его для создания статической библиотеки вместо этого?Кажется, от этого зависят другие библиотеки?
Большое вам спасибо!