This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Creating PC BLE Driver C libraries for nRF52840 Dongle following the Readme.md on GitHub fails

I followed all the steps from the readme instruction and struggle at:

## Compiling pc-ble-driver from source

Step 1. Install vcpkg dependencies is running succesfull

Step 2. cmake -G Ninja ..     returns with errors

D:\GIT_REPOSITORIES\FIRMWARE\POWER_BLUE\NORDIC\pc-ble-driver\build>cmake -G Ninja ..
-- NRF_BLE_DRIVER_VERSION not specified, setting it to 0.0.0
-- CONNECTIVITY_VERSION not specified, setting it to 0.0.0
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe
-- Check for working C compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe - works
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe
-- Check for working CXX compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe - works
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Architecture not set, using native 64-bit toolchain.
-- Building with build type: .
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.29.1.windows.1")
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
CMake Error at D:/Program Files/CMake/share/cmake-3.21/Modules/CheckTypeSize.cmake:139 (try_compile):
Cannot copy output executable

''

to destination specified by COPY_FILE:

'D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.bin'

Unable to find the executable at any of:

D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/cmTC_8a2e1.exe
D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Debug/cmTC_8a2e1.exe
D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Development/cmTC_8a2e1.exe

I have no idea why its going wrong. 

Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe 
Build flags: 
Id flags:  

The output was:
1
D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe: error: -o option required

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe 
Build flags: 
Id flags:  

The output was:
1
D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe: error: -o option required

Detecting C compiler ABI info failed to compile with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_78816 && [1/2] Building C object CMakeFiles/cmTC_78816.dir/CMakeCCompilerABI.c.obj

  D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/gcc/arm-none-eabi/bin/cc1 -fmessage-length=0 -fno-diagnostics-show-caret -march=armv4t -mlittle-endian -mfloat-abi=soft -mthumb-interwork -mtp=soft -mno-unaligned-access -nostdinc -isystemD:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/include -I. -D__SIZEOF_WCHAR_T=4 -D__ARM_ARCH_4T__ -D__SES_ARM -D__HEAP_SIZE__=1024 -D__SES_VERSION=54003 -D__GNU_LINKER -quiet -std=gnu99 -fomit-frame-pointer -fno-dwarf2-cfi-asm -fno-builtin -ffunction-sections -fdata-sections -fno-short-enums -fno-common D:/Program Files/CMake/share/cmake-3.21/Modules/CMakeCCompilerABI.c -o CMakeFiles/cmTC_78816.dir/CMakeCCompilerABI.c.asm

  D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/gcc/arm-none-eabi/bin/as --traditional-format -I. -march=armv4t -mlittle-endian -mfloat-abi=soft -mthumb-interwork CMakeFiles/cmTC_78816.dir/CMakeCCompilerABI.c.asm -o CMakeFiles/cmTC_78816.dir/CMakeCCompilerABI.c.obj

  rm CMakeFiles/cmTC_78816.dir/CMakeCCompilerABI.c.asm

[2/2] Linking C executable cmTC_78816.exe

no linker script, memory map file or section placement segments specified



Cannot copy output executable
  ''
to destination specified by COPY_FILE:
  'D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/3.21.4/CMakeDetermineCompilerABI_C.bin'
Unable to find the executable at any of:
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/cmTC_78816.exe
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Debug/cmTC_78816.exe
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Development/cmTC_78816.exe


Detecting CXX compiler ABI info failed to compile with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_9498f && [1/2] Building CXX object CMakeFiles/cmTC_9498f.dir/CMakeCXXCompilerABI.cpp.obj

  D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/gcc/arm-none-eabi/bin/cc1plus -fmessage-length=0 -fno-diagnostics-show-caret -fno-exceptions -fno-rtti -march=armv4t -mlittle-endian -mfloat-abi=soft -mthumb-interwork -mtp=soft -mno-unaligned-access -nostdinc -isystemD:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/include -I. -D__SIZEOF_WCHAR_T=4 -D__ARM_ARCH_4T__ -D__SES_ARM -D__HEAP_SIZE__=1024 -D__SES_VERSION=54003 -D__GNU_LINKER -quiet -std=gnu++98 -fomit-frame-pointer -fno-dwarf2-cfi-asm -fno-builtin -ffunction-sections -fdata-sections -fno-short-enums -fno-common D:/Program Files/CMake/share/cmake-3.21/Modules/CMakeCXXCompilerABI.cpp -o CMakeFiles/cmTC_9498f.dir/CMakeCXXCompilerABI.cpp.asm

  D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/gcc/arm-none-eabi/bin/as --traditional-format -I. -march=armv4t -mlittle-endian -mfloat-abi=soft -mthumb-interwork CMakeFiles/cmTC_9498f.dir/CMakeCXXCompilerABI.cpp.asm -o CMakeFiles/cmTC_9498f.dir/CMakeCXXCompilerABI.cpp.obj

  rm CMakeFiles/cmTC_9498f.dir/CMakeCXXCompilerABI.cpp.asm

[2/2] Linking CXX executable cmTC_9498f.exe

no linker script, memory map file or section placement segments specified



Cannot copy output executable
  ''
to destination specified by COPY_FILE:
  'D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/3.21.4/CMakeDetermineCompilerABI_CXX.bin'
Unable to find the executable at any of:
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/cmTC_9498f.exe
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Debug/cmTC_9498f.exe
  D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp/Development/cmTC_9498f.exe


The system is: Windows - 10.0.19042 - AMD64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe 
Build flags: 
Id flags: -c 

The output was:
0


Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o"

The C compiler identification is GNU, found in "D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/3.21.4/CompilerIdC/CMakeCCompilerId.o"

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe 
Build flags: 
Id flags: -c 

The output was:
0


Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.o"

The CXX compiler identification is GNU, found in "D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/3.21.4/CompilerIdCXX/CMakeCXXCompilerId.o"

Determining if the C compiler works passed with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_3a5e1 && [1/2] Building C object CMakeFiles/cmTC_3a5e1.dir/testCCompiler.c.obj

[2/2] Linking C executable cmTC_3a5e1.exe

no linker script, memory map file or section placement segments specified




Determining if the CXX compiler works passed with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_0d3ce && [1/2] Building CXX object CMakeFiles/cmTC_0d3ce.dir/testCXXCompiler.cxx.obj

[2/2] Linking CXX executable cmTC_0d3ce.exe

no linker script, memory map file or section placement segments specified




Determining if the include file sys/types.h exists passed with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_2097e && [1/2] Building C object CMakeFiles/cmTC_2097e.dir/CheckIncludeFile.c.obj

[2/2] Linking C executable cmTC_2097e.exe

no linker script, memory map file or section placement segments specified




Determining if the include file stdint.h exists passed with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_0026d && [1/2] Building C object CMakeFiles/cmTC_0026d.dir/CheckIncludeFile.c.obj

[2/2] Linking C executable cmTC_0026d.exe

no linker script, memory map file or section placement segments specified




Determining if the include file stddef.h exists passed with the following output:
Change Dir: D:/GIT_REPOSITORIES/FIRMWARE/POWER_BLUE/NORDIC/pc-ble-driver/build/CMakeFiles/CMakeTmp

Run Build Command(s):C:/ProgramData/chocolatey/bin/ninja.exe cmTC_7dc33 && [1/2] Building C object CMakeFiles/cmTC_7dc33.dir/CheckIncludeFile.c.obj

[2/2] Linking C executable cmTC_7dc33.exe

no linker script, memory map file or section placement segments specified




Parents Reply
  • Which C/C++ toolchain are you using?

    Detecting C compiler ABI info - failed
    -- Check for working C compiler: D:/Program Files/SEGGER/SEGGER Embedded Studio for ARM 5.40c/bin/cc.exe

    Seems like CMAKE is using the SEGGER compiler instead of the host compiler. If you're using VS toolchain, could you try building from "Developer command prompt for VS"? Type "developer" in the start menu and it should come up.

Children
Related