С этой тривиальной парой исходных файлов -
mbed/can .h
Код: Выделить всё
template void ftest2(T t) { }
Код: Выделить всё
template void ftest0(T t) { }
#include
template void ftest1(T t) { }
Код: Выделить всё
/arm-none-eabi-gcc/7.3.1-1.2.2/.content/bin/arm-none-eabi-g++ \
-isystem"mbed" \
-c "src/outer.cpp"
In file included from src/outer.cpp:2:0:
mbed/can.h:1:1: error: template with C linkage
template void ftest2(T t) { }
Этот загадочный комментарий, кажется, именно мой проблема:
Подсказка для будущих читателей: если вы передаете включаемый каталог в gcc через -isystem вместо -I, некоторые версии могут неявно применять C связь. – Ян Шац, 1 июля 2019 г., 15:02
Но нет никаких намеков на то, как это можно решить.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -c-linkage