QGCS error for Android
-
FAILED: Release/libQGroundControl_arm64-v8a.so
C:\Windows\system32\cmd.exe /C "cd . && C:\Users\Software\AppData\Local\Android\Sdk\ndk\26.1.10909125\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android23 --sysroot=C:/Users/Software/AppData/Local/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fexceptions -frtti -stdlib=libc++ -O3 -DNDEBUG -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--gc-sections -Qunused-arguments -Wl,--no-undefined -Wl,-Bsymbolic -shared -o Release\libQGroundControl_arm64-v8a.so @CMakeFiles\QGroundControl.rsp && cd ."
ld.lld: error: unable to find library -lpng
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
10:44:07: The process "C:\Program Files\CMake\bin\cmake.exe" exited with code 1.
10:44:07: Error while building/deploying project QGroundControl (kit: Android Qt 6.8.2 Clang arm64-v8a)
10:44:07: When executing step "Build"
10:44:07: Elapsed time: 08:59.
I have the error when I am build the project for android please if any have solutions please ping me.
-
@InsideFPV said in QGCS error for Android:
ld.lld: error: unable to find library -lpng
Linker cannot find libpng library.
Do you link to libpng explicitly (in your CMakeLists.txt file)? -
@InsideFPV said in QGCS error for Android:
please give me solution
Please answer my question first: do you link to libpng explicitly (in your CMakeLists.txt file)?
-
@jsulm No sir
I am adding full cmakelist.txt please checkcmake_minimum_required(VERSION 3.25)
list(APPEND CMAKE_MODULE_PATH
${CMAKE_SOURCE_DIR}/cmake
${CMAKE_SOURCE_DIR}/cmake/modules
${CMAKE_SOURCE_DIR}/cmake/find-modules
)if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release")
endif()set(CMAKE_REQUIRED_QUIET ON)
#######################################################
Custom Build Configuration
#######################################################
include(CustomOptions)
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/custom)
message(STATUS "Enabling custom build")
set(QGC_CUSTOM_BUILD ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/custom/cmake)
include(CustomOverrides)
endif()#######################################################
Project Info
#######################################################
set(CMAKE_OSX_ARCHITECTURES "arm64")
set(CMAKE_OSX_SYSROOT "iphoneos")
if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0")
endif()include(Git)
project(${QGC_APP_NAME}
VERSION ${QGC_APP_VERSION}
DESCRIPTION ${QGC_APP_DESCRIPTION}
HOMEPAGE_URL "https://qgroundcontrol.com/"
LANGUAGES C CXX
)if(APPLE AND NOT IOS)
set(MACOS TRUE)
endif()#######################################################
CMake Configuration Options
#######################################################
include(GNUInstallDirs)
include(FetchContent)
include(CMakePrintHelpers)set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if(LINUX)
set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_BINARY_DIR}/AppDir/usr")
else()
set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "${CMAKE_BINARY_DIR}/staging")
endif()
endif()if(QGC_USE_CACHE)
if(CMAKE_HOST_UNIX)
find_program(CCACHE_PROGRAM ccache)
if(CCACHE_PROGRAM)
message(STATUS "Using CCache")
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
if(APPLE)
set(CMAKE_OBJC_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
endif()
endif()
elseif(CMAKE_HOST_WIN32)
find_program(SCCACHE_PROGRAM sccache)
if(SCCACHE_PROGRAM)
message(STATUS "Using SCCache")
set(CMAKE_C_COMPILER_LAUNCHER ${SCCACHE_PROGRAM})
set(CMAKE_CXX_COMPILER_LAUNCHER ${SCCACHE_PROGRAM})
endif()
endif()
endif()if(MSVC)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
endif()if(CMAKE_CROSSCOMPILING AND ANDROID)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
endif()set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIGURATION>)https://cmake.org/cmake/help/latest/policy/CMP0168.html#policy:CMP0168
if(POLICY CMP0168)
cmake_policy(SET CMP0168 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0168 NEW)
endif()https://cmake.org/cmake/help/latest/policy/CMP0075.html#policy:CMP0075
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0075 NEW)
endif()if(QGC_USE_IWYU)
include(IWYU)
endif()#######################################################
Qt6 Configuration
#######################################################
if(CMAKE_CROSSCOMPILING AND NOT IS_DIRECTORY ${QT_HOST_PATH})
message(FATAL_ERROR "You need to set QT_HOST_PATH to cross compile Qt.")
endif()find_program(QMAKE_EXECUTABLE NAMES qmake HINTS ${QT_ROOT_DIR} ${QTDIR} ENV QTDIR PATH_SUFFIXES bin)
execute_process(COMMAND ${QMAKE_EXECUTABLE} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION)
if(QT_VERSION LESS QT_MINIMUM_VERSION)
MESSAGE(FATAL_ERROR "Minimum supported Qt version: ${QT_MINIMUM_VERSION}.
Installed version: ${QT_VERSION}")
endif()add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x060800)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
add_compile_definitions(
NDEBUG
QT_NO_DEBUG
QT_NO_DEBUG_OUTPUT
)
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
include(CTest)
endif()if(ANDROID)
list(APPEND QT_ANDROID_MULTI_ABI_FORWARD_VARS QGC_STABLE_BUILD QT_HOST_PATH)
endif()find_package(Qt6
${QT_MINIMUM_VERSION}
REQUIRED
COMPONENTS
Concurrent
Core
Core5Compat
Location
Multimedia
Network
OpenGL
Positioning
Qml
QmlIntegration
Quick
QuickControls2
QuickWidgets
Sensors
Sql
Svg
TextToSpeech
Widgets
Xml
OPTIONAL_COMPONENTS
Bluetooth
Charts
LinguistTools
MultimediaQuickPrivate
Quick3D
Quick3DTools
SerialPort
Test
HINTS
${QT_LIBRARY_HINTS}
)if(LINUX)
find_package(Qt6 ${QT_MINIMUM_VERSION} COMPONENTS WaylandClient)
endif()Set extra standard project setup options for Qt 6.7.0 and above
set(EXTRA_STANDARD_PROJECT_SETUP_OPTIONS)
if(QT_VERSION VERSION_GREATER_EQUAL 6.8.2)
list(APPEND EXTRA_STANDARD_PROJECT_SETUP_OPTIONS I18N_SOURCE_LANGUAGE en)
endif()qt_standard_project_setup(
REQUIRES ${QGC_QT_MINIMUM_VERSION}
SUPPORTS_UP_TO ${QGC_QT_MAXIMUM_VERSION}
${EXTRA_STANDARD_PROJECT_SETUP_OPTIONS}
)qt_policy(
SET QTP0001 NEW
SET QTP0002 NEW
SET QTP0003 NEW
SET QTP0004 NEW
SET QTP0005 NEW
)#######################################################
QGroundControl Options
#######################################################
add_compile_definitions(
$<$<NOT:$BOOL:${QGC_STABLE_BUILD}>:QGC_DAILY_BUILD>
$<$BOOL:${QGC_BUILD_TESTING}:QGC_UNITTEST_BUILD>
$<$BOOL:${QGC_DEBUG_QML}:QT_QML_DEBUG>
$<$BOOL:${QGC_DISABLE_APM_MAVLINK}:QGC_NO_ARDUPILOT_DIALECT>
$<$BOOL:${QGC_VIEWER3D}:QGC_VIEWER3D>
)if(NOT QGC_BUILD_TESTING)
set(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
endif()if("${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64;x86_64" OR "${CMAKE_OSX_ARCHITECTURES}" MATCHES "x86_64;arm64")
set(MACOS_UNIVERSAL_BUILD ON)
endif()TODO: Force building dependencies if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)?
if(CMAKE_OSX_ARCHITECTURES AND NOT "${CMAKE_HOST_SYSTEM_PROCESSOR}" IN_LIST CMAKE_OSX_ARCHITECTURES)
include(CPM)
if(CMAKE_CROSSCOMPILING OR ANDROID OR MACOS_UNIVERSAL_BUILD)
set(CPM_DOWNLOAD_ALL ON)
endif()#######################################################
Custom Build Configuration
#######################################################
if(QGC_CUSTOM_BUILD)
add_subdirectory(custom)
endif()#######################################################
QGroundControl Resources
#######################################################
Note: Adding Resources to Library instead requires using Q_INIT_RESOURCE(qgcresources)
if(NOT QGC_CUSTOM_BUILD)
# Custom builds can override the resources
list(APPEND QGC_RESOURCES
${CMAKE_SOURCE_DIR}/qgcimages.qrc
${CMAKE_SOURCE_DIR}/qgcresources.qrc
${CMAKE_SOURCE_DIR}/qgroundcontrol.qrc
)
endif()list(APPEND QGC_RESOURCES
${CMAKE_SOURCE_DIR}/resources/InstrumentValueIcons/InstrumentValueIcons.qrc
${CMAKE_SOURCE_DIR}/src/FirmwarePlugin/APM/APMResources.qrc
${CMAKE_SOURCE_DIR}/src/FirmwarePlugin/PX4/PX4Resources.qrc
)if(QGC_UTM_ADAPTER)
list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/src/UTMSP/utmsp.qrc)
else()
list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/src/UTMSP/dummy/utmsp_dummy.qrc)
endif()if(QGC_BUILD_TESTING)
list(APPEND QGC_RESOURCES ${CMAKE_SOURCE_DIR}/test/UnitTest.qrc)
endif()#######################################################
QGroundControl Target
#######################################################
qt_add_executable(${CMAKE_PROJECT_NAME}
WIN32
MACOSX_BUNDLE
src/main.cc
${QGC_RESOURCES}
)if(NOT ANDROID AND NOT IOS)
target_sources(${CMAKE_PROJECT_NAME}
PRIVATE
src/RunGuard.cc
src/RunGuard.h
)
endif()target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)
if(Qt6LinguistTools_FOUND)
file(GLOB TS_SOURCES ${CMAKE_SOURCE_DIR}/translations/qgc_*.ts)
set_source_files_properties(${TS_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_BINARY_DIR}/i18n")
qt_add_translations(${CMAKE_PROJECT_NAME}
# TS_FILE_BASE ${CMAKE_PROJECT_NAME}
# TS_FILE_DIR ${CMAKE_SOURCE_DIR}/translations/
TS_FILES ${TS_SOURCES}
RESOURCE_PREFIX "/"
LUPDATE_OPTIONS -no-obsolete
)
endif()set_target_properties(${CMAKE_PROJECT_NAME}
PROPERTIES
QT_RESOURCE_PREFIX "/qgc"
OUTPUT_NAME ${CMAKE_PROJECT_NAME}
)if(WIN32)
# windows installer files shared with core and custom
set(DEPLOY_WIN_FILES
"${CMAKE_SOURCE_DIR}/deploy/windows/driver.msi"
"${CMAKE_SOURCE_DIR}/deploy/windows/nullsoft_installer.nsi"
"${CMAKE_SOURCE_DIR}/deploy/windows/QGroundControl.rc"
"${QGC_WINDOWS_INSTALL_HEADER_PATH}"
"${QGC_WINDOWS_ICON_PATH}"
)# Destination directory where files will be copied set(QGC_INSTALLER_SOURCE_WIN "${CMAKE_BINARY_DIR}/deploy/windows") file(MAKE_DIRECTORY ${QGC_INSTALLER_SOURCE_WIN}) foreach(FILE ${DEPLOY_WIN_FILES}) # filename without the path get_filename_component(FILE_NAME ${FILE} NAME) # re-copy the file if it changes add_custom_command( OUTPUT "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FILE}" "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}" DEPENDS "${FILE}" # Depend on the source file so that it re-copies when it changes ) list(APPEND QGC_INSTALLER_SOURCE_WIN_FILES "${QGC_INSTALLER_SOURCE_WIN}/${FILE_NAME}") endforeach() target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${QGC_INSTALLER_SOURCE_WIN_FILES}) set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE QT_TARGET_RC_ICONS "${QGC_WINDOWS_ICON_PATH}" ) add_compile_definitions(_USE_MATH_DEFINES)
elseif(MACOS)
set(MACOSX_BUNDLE_ICON_FILE "macx.icns")
set(app_icon_macos "${QGC_MACOS_ICON_PATH}/macx.icns")
set_source_files_properties(${app_icon_macos} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${app_icon_macos})
set_target_properties(${CMAKE_PROJECT_NAME}
PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/deploy/macos/MacOSXBundleInfo.plist.in"
MACOSX_BUNDLE_BUNDLE_NAME "${CMAKE_PROJECT_NAME}"
MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
MACOSX_BUNDLE_COPYRIGHT "${QGC_APP_COPYRIGHT}"
MACOSX_BUNDLE_GUI_IDENTIFIER "${QGC_BUNDLE_ID}"
MACOSX_BUNDLE_ICON_FILE "macx.icns"
MACOSX_BUNDLE_INFO_STRING "${QGC_APP_DESCRIPTION}"
MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
)
elseif(IOS)
enable_language(OBJC)set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0") set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2") # iPhone,iPad set(CMAKE_XCODE_ATTRIBUTE_INFOPLIST_FILE "${CMAKE_CURRENT_SOURCE_DIR}/deploy/ios/iOS-Info.plist") set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES QT_IOS_LAUNCH_SCREEN ${CMAKE_SOURCE_DIR}/deploy/ios/QGCLaunchScreen.xib XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.mavlink.qgroundcontrol" XCODE_ATTRIBUTE_PRODUCT_NAME ${CMAKE_PROJECT_NAME} XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${CMAKE_PROJECT_VERSION} XCODE_ATTRIBUTE_MARKETING_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon" XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "14.0" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" # iPhone,iPad XCODE_ATTRIBUTE_INFOPLIST_KEY_CFBundleDisplayName ${CMAKE_PROJECT_NAME} XCODE_ATTRIBUTE_INFOPLIST_KEY_LSApplicationCategoryType "public.app-category.mycategory" XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES" ) # set(QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY ON) qt_add_ios_ffmpeg_libraries(${CMAKE_PROJECT_NAME})
elseif(ANDROID)
include(CPM)
CPMAddPackage(
NAME android_openssl
URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip
)
include(${android_openssl_SOURCE_DIR}/android_openssl.cmake)
add_android_openssl_libraries(${CMAKE_PROJECT_NAME})set(ANDROID_PLATFORM_ARCHITECTURE_CODE) if(${ANDROID_ABI} STREQUAL "armeabi-v7a") set(ANDROID_PLATFORM_ARCHITECTURE_CODE "032") elseif(${ANDROID_ABI} STREQUAL "arm64-v8a") set(ANDROID_PLATFORM_ARCHITECTURE_CODE "064") elseif(${ANDROID_ABI} STREQUAL "x86") set(ANDROID_PLATFORM_ARCHITECTURE_CODE "132") elseif(${ANDROID_ABI} STREQUAL "x86_64") set(ANDROID_PLATFORM_ARCHITECTURE_CODE "164") endif() set(ANDROID_VERSION_CODE "${ANDROID_PLATFORM_ARCHITECTURE_CODE}${PROJECT_VERSION_MAJOR}${PROJECT_VERSION_MINOR}") set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES # QT_ANDROID_ABIS ${ANDROID_ABI} QT_ANDROID_MIN_SDK_VERSION ${QGC_QT_ANDROID_MIN_SDK_VERSION} QT_ANDROID_TARGET_SDK_VERSION ${QGC_QT_ANDROID_TARGET_SDK_VERSION} QT_ANDROID_PACKAGE_NAME "${QGC_ANDROID_PACKAGE_NAME}" QT_ANDROID_PACKAGE_SOURCE_DIR "${QGC_ANDROID_PACKAGE_SOURCE_DIR}" QT_ANDROID_VERSION_NAME ${CMAKE_PROJECT_VERSION} QT_ANDROID_VERSION_CODE ${ANDROID_VERSION_CODE} QT_QML_ROOT_PATH ${CMAKE_SOURCE_DIR} # QT_ANDROID_SDK_BUILD_TOOLS_REVISION # QT_ANDROID_SYSTEM_LIBS_PREFIX )
endif()
add_compile_definitions(
QGC_APP_NAME="${QGC_APP_NAME}"
QGC_ORG_NAME="${QGC_ORG_NAME}"
QGC_ORG_DOMAIN="${QGC_ORG_DOMAIN}"
QGC_APP_VERSION_STR="${QGC_APP_VERSION_STR}"
QGC_SETTINGS_VERSION=${QGC_SETTINGS_VERSION}
)add_subdirectory(src)
target_link_libraries(${CMAKE_PROJECT_NAME}
PRIVATE
Qt6::Core
Qt6::Core5Compat
Qt6::Quick
Qt6::Svg
Qt6::Widgets
QGC
QmlControls)
target_link_libraries(QGroundControl
PUBLIC
-ljpeg
-lpng
)if(ANDROID)
# Find JPEG library in NDK sysroot, Qt paths, or project paths
find_library(JPEG_LIBRARY jpeg
PATHS
${ANDROID_NDK}/sysroot/usr/lib/${ANDROID_ABI} # NDK sysroot for the ABI
${ANDROID_NDK}/platforms/android-${QGC_QT_ANDROID_MIN_SDK_VERSION}/arch-arm64/usr/lib # Alternative NDK path
${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI} # Project-specific libraries
${QT_LIBRARY_DIR} # Qt library directory (if applicable)
NO_DEFAULT_PATH # Restrict to these paths only
)# Find PNG library (you’ll need to do the same for PNG if it’s missing) find_library(PNG_LIBRARY png PATHS ${ANDROID_NDK}/sysroot/usr/lib/${ANDROID_ABI} ${ANDROID_NDK}/platforms/android-${QGC_QT_ANDROID_MIN_SDK_VERSION}/arch-arm64/usr/lib ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI} ${QT_LIBRARY_DIR} NO_DEFAULT_PATH ) # Check if libraries are found if(NOT JPEG_LIBRARY) message(WARNING "JPEG library not found. Ensure libjpeg is available for ${ANDROID_ABI}. Attempting to proceed without it.") # Optionally, you can specify a fallback path or disable linking if not critical # set(JPEG_LIBRARY "") # Comment out or handle gracefully endif() if(NOT PNG_LIBRARY) message(WARNING "PNG library not found. Ensure libpng is available for ${ANDROID_ABI}. Attempting to proceed without it.") # set(PNG_LIBRARY "") # Comment out or handle gracefully endif() # Link the libraries (only if found) if(JPEG_LIBRARY) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${JPEG_LIBRARY}) endif() if(PNG_LIBRARY) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${PNG_LIBRARY}) endif() # Continue with other Android-specific configurations target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cc) target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Joystick Utilities ) if(NOT QGC_NO_SERIAL_LINK) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Comms) endif()
endif()
#target_link_libraries(QGroundControl PRIVATE C:/libpng/build/libpng.a)if(QGC_BUILD_TESTING)
add_subdirectory(test)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE qgctest)
endif()if(ANDROID)
target_sources(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src/AndroidInit.cc)target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Joystick Utilities ) target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/android/src) if(NOT QGC_NO_SERIAL_LINK) target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Comms) endif()
endif()
qt_import_plugins(${CMAKE_PROJECT_NAME}
INCLUDE Qt6::QSvgPlugin
EXCLUDE_BY_TYPE geoservices
INCLUDE_BY_TYPE sqldrivers Qt6::QSQLiteDriverPlugin
)include(Install)
include(PrintSummary)
-
@InsideFPV said in QGCS error for Android:
target_link_libraries(QGroundControl
PUBLIC
-ljpeg
-lpng
)Yes, you're linking libpng.
Was libpng found when running cmake?
Where is libpng for Android located? -
@jsulm i am adding only this code porting inside my cmake file.
target_link_libraries(QGroundControl
PUBLIC
-ljpeg
-lpng
)I am getting gstreamer error and i ask chatgpt and it provide me this solution.
As form your questing i understand i have to add libpng in my project but i didnt added that till now.(Am i right...?)
please guide me how can i resolve it...? -
@InsideFPV said in QGCS error for Android:
i have to add libpng in my project but i didnt added that till now
You DID add it already! Just look at your CMakeLists.txt file.
I repeat the questions you did not answer:
Was libpng found when running cmake?
Where is libpng for Android located? -
@jsulm No libpng was not found while running cmake.
and it is not presend in this location:
"C:/Users/Software/AppData/Local/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android"where will i get libpng ?