Hello, I'm trying to move a c project in c++. I just tried to change extension to main.c to main.cpp but I get an error including ucos_ii.h at OsTaskCreateExt and I cannot find what i going wrong with the function declaration. Can anyone help me? Thanks Michele
Standard C/C++ rule. Your C library expects a C main. Most c++ compilers manages this themselves, but try with extern "C" main, to make sure that the external symbol will be named _main.
/pwm
That's what I wrote in my main.cpp
and that's waht I found checking the main.ic
int main(void) { INT8U ucErr; static INT16U sdata Ram_test_result = 0; static INT16U sdata led_blink = 0; static INT16U sdata led_switch = 0;
#define LED_TIMEOUT 40000
//SignInit(); P7_P7 = 0; //disable bypass scr CC1_SEE = 0x0000; //disabilita gli out-compare CC1_OUT_CC6IO = 0; //disable input scr R P1L_P0 = 0; //disable input scr T P1L_P1 = 0; //disable input scr S P9_P5 = 0; //disable battery+ scr P1L_P7 = 0;
#line 549 int main(void) {
static INT16U sdata Ram_test_result = 0U; static INT16U sdata led_blink = 0U; static INT16U sdata led_switch = 0U; #line 551 auto INT8U ucErr; #line 550 _main(); #line 559 P7_P7 = 0U; CC1_SEE = ((unsigned int)0U); CC1_OUT_CC6IO = 0U;
.. it seems it add a call to function _main() and that is the error I get.
I defined just one main in my main.cpp and than I found that the compiler has added, as I showed, a _main(); function call in my main().
Maybe there is something wrong in my main declaration. Should I have to do something different?
I cannot understand your comment. Again, thank oyu very much, this c++ conversion is far more difficult that I was expected it would be .. and i'm just changing main.c in .cpp .. there are a lot of files to be converted! :(
A C function named _main() will have an external binding __main (i.e. two underscores).
A C++ function named _main() may have just about any strange name, that somewhere constains the _main sub-string.
Searching "_main" in keil help I found that the c++ keil compiler (EC++) requires to call the _main() function at the beginning of the main() function. This function mainly contains new/delete functions for C++ operator new/delete.