defmt: error LNK2019: unresolved external symbol _defmt_panic referenced in function

This is likely similar to #411

I have a reproducible case (only affects Windows).

  = note: libkll_hid-48b2e4c1faf634c7.rlib(kll_hid-48b2e4c1faf634c7.8ek79hmbmne36vd.rcgu.o) : error LNK2019: unresolved external symbol _defmt_panic referenced in function _ZN57_$LT$kll_hid..Locale$u20$as$u20$defmt..traits..Format$GT$6format17h16cbf08301323530E
          libkll_hid-48b2e4c1faf634c7.rlib(kll_hid-48b2e4c1faf634c7.8ek79hmbmne36vd.rcgu.o) : error LNK2019: unresolved external symbol _defmt_acquire referenced in function _ZN57_$LT$kll_hid..Locale$u20$as$u20$defmt..traits..Format$GT$6format17h16cbf08301323530E
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.8.rcgu.o) : error LNK2001: unresolved external symbol _defmt_acquire
          libkll_hid-48b2e4c1faf634c7.rlib(kll_hid-48b2e4c1faf634c7.8ek79hmbmne36vd.rcgu.o) : error LNK2019: unresolved external symbol _defmt_release referenced in function _ZN57_$LT$kll_hid..Locale$u20$as$u20$defmt..traits..Format$GT$6format17h16cbf08301323530E
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.8.rcgu.o) : error LNK2001: unresolved external symbol _defmt_release
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.8.rcgu.o) : error LNK2019: unresolved external symbol _defmt_flush referenced in function _ZN5defmt5flush17h7ba29d74f1244836E
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.3.rcgu.o) : error LNK2019: unresolved external symbol _defmt_write referenced in function _ZN5defmt6export3f3217hed4f57cccfafeed4E
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.6.rcgu.o) : error LNK2001: unresolved external symbol _defmt_write
          libdefmt-84a1edf1a654ad5f.rlib(defmt-84a1edf1a654ad5f.defmt.6fd46b78-cgu.3.rcgu.o) : error LNK2019: unresolved external symbol _defmt_timestamp referenced in function _ZN5defmt6export6header17h47dc426ec968adf6E
          C:\Users\tripl\source\repos\kiibohd\kiibohd-core\target\debug\deps\kll_core-bd87741b11f4a13f.exe : fatal error LNK1120: 6 unresolved externals

I likely can resolve this if I make defmt an optional opt-in dependency.

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Comments: 18 (4 by maintainers)

Commits related to this issue

Most upvoted comments

@Urhengulas My project has no chance of building on stable. I’m doing no_std no-OS on RP2040 microcontroller, project will not build without nightly.

I just fell over this issue. I have a library where I derive defmt::Format for a type, but also want to run unit tests.

  = note: libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.12.rcgu.o) : error LNK2019: unresolved external symbol _defmt_acquire referenced in function _ZN5defmt5flush17h2fc9ebaccd76d845E
          libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.12.rcgu.o) : error LNK2019: unresolved external symbol _defmt_flush referenced in function _ZN5defmt5flush17h2fc9ebaccd76d845E
          libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.12.rcgu.o) : error LNK2019: unresolved external symbol _defmt_release referenced in function _ZN5defmt5flush17h2fc9ebaccd76d845E
          libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.1.rcgu.o) : error LNK2019: unresolved external symbol _defmt_write referenced in function _ZN5defmt6export3f3217hc6d5ce75e66caeb7E
          libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.6.rcgu.o) : error LNK2001: unresolved external symbol _defmt_write
          libdefmt-070f26dc2660ddc9.rlib(defmt-070f26dc2660ddc9.defmt.167e37fa-cgu.1.rcgu.o) : error LNK2019: unresolved external symbol _defmt_timestamp referenced in function _ZN5defmt6export6header17he32352bb0799f419E
          C:\Users\msn\Documents\GitHub\Neotron-BMC\target\debug\deps\neotron_bmc_protocol-4f03f65c89f102c7.exe : fatal error LNK1120: 5 unresolved externals

I am running into link errors for a shared library that uses derive(Format), and no logging statements. The library contains structs that are used by my MCU, Linux, and Windows. It builds fine on Linux, but on Windows I get:

  = note: libshared-7e68f9b1edf48cc2.rlib(shared-7e68f9b1edf48cc2.xb1jn04cva8eh78.rcgu.o) : error LNK2019: unresolved external symbol _defmt_acquire referenced in function _ZN67_$LT$shared..message..FromHost$u20$as$u20$defmt..traits..Format$GT$6format17h0b99be05839c96deE
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.9.rcgu.o) : error LNK2001: unresolved external symbol _defmt_acquire
          libshared-7e68f9b1edf48cc2.rlib(shared-7e68f9b1edf48cc2.xb1jn04cva8eh78.rcgu.o) : error LNK2019: unresolved external symbol _defmt_release referenced in function _ZN67_$LT$shared..message..FromHost$u20$as$u20$defmt..traits..Format$GT$6format17h0b99be05839c96deE
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.9.rcgu.o) : error LNK2001: unresolved external symbol _defmt_release
          libshared-7e68f9b1edf48cc2.rlib(shared-7e68f9b1edf48cc2.xb1jn04cva8eh78.rcgu.o) : error LNK2019: unresolved external symbol _defmt_panic referenced in function _ZN67_$LT$shared..message..FromHost$u20$as$u20$defmt..traits..Format$GT$6format17h0b99be05839c96deE
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.9.rcgu.o) : error LNK2019: unresolved external symbol _defmt_flush referenced in function _ZN5defmt5flush17h6023f786f51632fdE
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.3.rcgu.o) : error LNK2019: unresolved external symbol _defmt_write referenced in function _ZN5defmt6export3f3217h160241a35c1e8599E
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.6.rcgu.o) : error LNK2001: unresolved external symbol _defmt_write
          libdefmt-021a50e4f73e2db0.rlib(defmt-021a50e4f73e2db0.defmt.ee3c75f0-cgu.3.rcgu.o) : error LNK2019: unresolved external symbol _defmt_timestamp referenced in function _ZN5defmt6export6header17ha728642f8139efcdE
          C:\Users\james\Documents\GitHub\hw-gauge\daemon\target\debug\deps\hw_gauge_winsvc.exe : fatal error LNK1120: 6 unresolved externals

I’m not finding enough information online to know if this is an error on my part, or similar to reports above.

  • rustc 1.64.0 (a55dd71d5 2022-09-19)
  • defmt 0.3.2