Arm gcc uint32_t! = Unsigned intC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Arm gcc uint32_t! = Unsigned int

Сообщение Anonymous »

Я не уверен, что здесь происходит, надеясь, что кто -то сможет просветить меня. , для которого я объявляю ограниченную семью специализаций, в том числе для аргументов UIN32_T. Когда я пытаюсь вызвать эту функцию с помощью аргумента «Unsigned Int», линкера GCC говорит, что не может найти такую ​​функцию. Я проверил, Uint32_T и «Unsigned Int» оба имеют 4 байта на мою кору руки. Почему они не взаимозаменяемы? PrettyPrint-Override ">

Код: Выделить всё

#include 

template
void func(T value, char * p_rtn, uint8_t rtn_len);
< /code>
util.cpp
#include "util.h"

uint32_t useless_global;

template
void func(T value, char * const p_rtn, const uint8_t rtn_len) {
useless_global += sizeof(value);
}

template void func< 2>(uint32_t value, char * p_rtn, uint8_t rtn_len);
template void func(uint32_t value, char * p_rtn, uint8_t rtn_len);
template void func(uint32_t value, char * p_rtn, uint8_t rtn_len);

template void func< 2>(uint64_t value, char * p_rtn, uint8_t rtn_len);
template void func(uint64_t value, char * p_rtn, uint8_t rtn_len);
template void func(uint64_t value, char * p_rtn, uint8_t rtn_len);

// uncommenting this resolves the compiler error.
//template void func(unsigned int value, char * p_rtn, uint8_t rtn_len);
< /code>
test.cpp
#include "util.h"

int main() {
char buff[128];
func(sizeof(unsigned int), buff, 128);
}
< /code>
Arm-none-eabi-c ++ говорит мне < /p>
test.cpp:(.text+0x1c): undefined reference to `void func(unsigned int, char*, unsigned char)'
Если я составляю это с Windows G ++, ошибки нет.


Подробнее здесь: https://stackoverflow.com/questions/793 ... signed-int
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»