[CMake] undefined reference to `_exit'

hex hex7c3 at gmail.com
Fri Feb 1 17:15:26 EST 2019


hello,

I am trying to include a static library that contains the startup code 
for ARM processor to my  CMake project for cross compilation.

I included the linker script and added it to the executable. Flags and 
include files are properly set in the CMake build output. The path to 
the library is also correctly seen.

The linker fails on the startup code:


|Scanning dependencies of target testApp [ 50%] Building CXX object 
CMakeFiles/testApp.dir/src/main.c.obj [100%] Linking CXX executable 
testApp 
/opt/gcc-arm-none-eabi-7-2017-q4-major/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v7-ar/fpv3/hard/libc.a(lib_a-exit.o): 
In function `exit': exit.c:(.text.exit+0x1c): undefined reference to 
`_exit' 
/opt/gcc-arm-none-eabi-7-2017-q4-major/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v7-ar/fpv3/hard/libc.a(lib_a-fini.o): 
In function `__libc_fini_array': fini.c:(.text.__libc_fini_array+0x2c): 
undefined reference to `_fini' 
/opt/gcc-arm-none-eabi-7-2017-q4-major/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v7-ar/fpv3/hard/libc.a(lib_a-init.o): 
In function `__libc_init_array': init.c:(.text.__libc_init_array+0x38): 
undefined reference to `_init' collect2: error: ld returned 1 exit 
status Here is my CMakeLists file: *cmake_minimum_required(VERSION 
3.5.1)****project (hello-world)******set(SOURCE_FILES 
src/main.c)******set (LINKER_SCRIPT 
linker_script.ld)******add_executable(${TARGET_NAME} 
${SOURCE_FILES})******set_target_properties( ${TARGET_NAME} PROPERTIES 
LINK_DEPENDS ${LINKER_SCRIPT})******set(CMAKE_EXE_LINKER_FLAGS 
"${CMAKE_EXE_LINKER_FLAGS} -Wl,-build-id=none -Wl,-T ${LINKER_SCRIPT} " 
CACHE STRING "" FORCE )******set(COMMON_FLAGS "${COMMON_FLAGS} 
-march=armv7-a")****set(COMMON_FLAGS "${COMMON_FLAGS} 
-mfpu=vfpv3")****set(COMMON_FLAGS "${COMMON_FLAGS} 
-mfloat-abi=hard")****set(COMMON_FLAGS "${COMMON_FLAGS} 
-Wall")****set(COMMON_FLAGS "${COMMON_FLAGS} -O0")****set(COMMON_FLAGS 
"${COMMON_FLAGS} -nostartfiles")****set(COMMON_FLAGS "${COMMON_FLAGS} 
-fmessage-length=0")****set(COMMON_FLAGS "${COMMON_FLAGS} 
-fno-exceptions")****set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} 
${COMMON_FLAGS}")****set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} 
${COMMON_FLAGS}")******include_directories( inc 
)******find_library(LIB_C NAMES libc PATHS "lib" 
)******target_link_libraries(${TARGET_NAME} ${LIB_C})*** How can I solve 
this problem? The only dependency here is the library itself... Thank 
you in advance for any response. |

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190201/51056043/attachment.html>


More information about the CMake mailing list