This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How is it that the pc-ble-driver went from 31 MB to 7 MB between 4.1.1 and 4.1.2?

I just downloaded the latest version of the pc-ble-driver hoping some of the bugs I had reported were fixed. The downside is the notes do NOT  indicate they were addressed but the thing that surprised me was the difference in size. My version 4.1.1 is 31+ MB in size and this one is slightly less than 7 MB. I am concerned there is something wrong with the download.

Also the library says it is static, but when I compile with the MT Static option on Visual Studio, it wont build. I have to use the dll options instead (which I would like to avoid given the nightmare of redistributables).

Can someone explain to me the size difference and why the MT Static build option does not work?

Here are the errors I get when using the  Multi-Threaded/MT option

Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol __imp_strncpy BtleTester E:\projects\BleTester\BtleTester\nrf-ble-driver-sd_api_v6-mt-static-4_1_1.lib(sd_rpc_impl.cpp.obj) 1
Error LNK2001 unresolved external symbol __imp_strtok_s BtleTester E:\projects\BleTester\BtleTester\nrf-ble-driver-sd_api_v6-mt-static-4_1_1.lib(serial_port_enum.cpp.obj) 1
Error LNK2001 unresolved external symbol __imp__stricmp BtleTester E:\projects\BleTester\BtleTester\nrf-ble-driver-sd_api_v6-mt-static-4_1_1.lib(serial_port_enum.cpp.obj) 1
Error LNK2001 unresolved external symbol __imp__mktime64 BtleTester E:\projects\BleTester\BtleTester\nrf-ble-driver-sd_api_v6-mt-static-4_1_1.lib(disphelper.c.obj) 1
Error LNK2001 unresolved external symbol __imp_memchr BtleTester E:\projects\BleTester\BtleTester\nrf-ble-driver-sd_api_v6-mt-static-4_1_1.lib(jlinkid_reg_lookup.cpp.obj) 1
Error LNK1120 5 unresolved externals BtleTester E:\projects\BleTester\BtleTester\x64\Release\BtleTester.exe 1

Using the Multi-Threaded DLL/MD option builds fine.

  • Hi,

    After talking to one of our developers, it seems that it might be an issue on our side. 

    If you want an immediate fix you can use vcpkg, choose a triplet and compile yourself. Info about vcpkg can be found here.

    You can make a static versjon of nrf-ble-driver:

    vcpkg install nrf-ble-driver –triplet x64-windows-static

    You can use, vcpkg help triplets, to see a list of the available triplets.

Related