Closed
Description
Hi,
your lib looks very promising. Unfortunately there are big problems with it. If I use it with Arduino then the controller always resets.
If I use it in Atmel Studio 7 it always compiles with error messages. Your vector example does not compile either. It doesn't matter if I use an avr-gcc toolchain with gcc 9.3.0 or 11.2.0. Also in the Arduino IDE.
I can include vector without errors, but when I use it, it doesn't compile anymore.
Now I wanted to ask in which IDE do you program? In which environment did you test all this? According to your description it should work with avr-gcc.
2 Examples with Atmel Studio 7.
#include <vector>
#include <cstdio>
#include <algorithm>
int main()
{
std::vector<uint8_t> test{10, 1, 2, 42, 3};
test.push_back(4);
test.erase(test.begin());
if(auto it = std::find(test.begin(), test.end(), 42); it != test.end()) {
test.erase(it);
}
}
Output
Error undefined reference to `operator new(unsigned int)' avr-libstdcpp-Test_001 <artificial> 1
Error <artificial>:(.text.startup+0x3e): undefined reference to `operator new(unsigned int)' avr-libstdcpp-Test_001 1
Error <artificial>:(.text.startup+0x6c): undefined reference to `operator delete(void*, unsigned int)' avr-libstdcpp-Test_001 1
Error <artificial>:(.text.startup+0xd2): undefined reference to `operator delete(void*, unsigned int)' avr-libstdcpp-Test_001 1
Error C:\Users\Worker\AppData\Local\Temp\cc6G2oHd.ltrans0.ltrans.o: in function `main': avr-libstdcpp-Test_001
#include <avr/io.h>
#include <vector>
#include <algorithm>
using namespace std;
vector<int16_t> v1 {1, 2, 3, 4};
vector<int16_t> v3 (19);
int main()
{ }
Output
Error undefined reference to `operator new(unsigned int)' avr-libstdcpp-Test_001 <artificial> 1
Error <artificial>:(.text.startup+0x8a): undefined reference to `operator new(unsigned int)' avr-libstdcpp-Test_001 1
Error C:\Users\Worker\AppData\Local\Temp\ccYoUbRD.ltrans0.ltrans.o: in function `std::_Vector_base<int, std::allocator<int> >::~_Vector_base()': avr-libstdcpp-Test_001 1
Error C:\Users\Worker\AppData\Local\Temp\ccYoUbRD.ltrans0.ltrans.o: in function `_GLOBAL__sub_I_v1': avr-libstdcpp-Test_001 1
Error ld returned 1 exit status avr-libstdcpp-Test_001 collect2.exe 0
Error undefined reference to `operator delete(void*, unsigned int)' avr-libstdcpp-Test_001 <artificial> 1
Translated with www.DeepL.com/Translator (free version)
Metadata
Metadata
Assignees
Labels
No labels