Where is _libc_init_array() defined?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Where is _libc_init_array() defined?

跳至解决方案
2,368 次查看
oscar_abn
Contributor I

Hello, 

I am working on the S32K344 microcontroller and I need to execute c++ code. After finding out c++ is not officially suported with and SDK project I tried to implement some of the workarounds explained in nxp community pages. 

In short, the steps are: create a C project with SDK, add C++ nature, rename main.c to main.cpp, change standard linker file to the linker file created in the project in project settings (see image).

Screenshot 2024-09-13 134701.png

 

 

 

After this steps I am able to build a project with main.cpp, however the objects declared outside of main are not executed or initialized. 

One solution i found to this problem is to include  __libc_init_array() at the beginning of main(). The problem now is that this function is not found. How can i add the library to solve this dependence? Is there any other solution to initialize objects outside of main in c++? Console output:

Building file: ../RTD/src/Clock_Ip_ExtOsc.c
Invoking: Standard S32DS C Compiler
arm-none-eabi-gcc "@RTD/src/Adc_Sar_Ip.args" -MMD -MP -MF"RTD/src/Clock_Ip_ExtOsc.d" -MT"RTD/src/Clock_Ip_ExtOsc.o" -o "RTD/src/Clock_Ip_ExtOsc.o" "../RTD/src/Clock_Ip_ExtOsc.c"
../src/main.cpp: In function 'int main()':
../src/main.cpp:59:2: error: '__libc_init_array' was not declared in this scope
59 | __libc_init_array();
| ^~~~~~~~~~~~~~~~~
make: *** [src/subdir.mk:20: src/main.o] Error 1
make: *** Waiting for unfinished jobs....

 

0 项奖励
回复
1 解答
2,304 次查看
jiri_kral
NXP Employee
NXP Employee

Hi, 

_libc_init_array is part of STD C library (for example libc_nano.a). If you are using C++ you don't need link STD C Library and call _libc_init_array. 

在原帖中查看解决方案

0 项奖励
回复
1 回复
2,305 次查看
jiri_kral
NXP Employee
NXP Employee

Hi, 

_libc_init_array is part of STD C library (for example libc_nano.a). If you are using C++ you don't need link STD C Library and call _libc_init_array. 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1954260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E_libc_init_array()%20%E5%9C%A8%E5%93%AA%E9%87%8C%E5%AE%9A%E4%B9%89%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1954260%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%26nbsp%3B%3C%2FP%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E7%A0%94%E7%A9%B6%20S32K344%20%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%EF%BC%8C%E9%9C%80%E8%A6%81%E6%89%A7%E8%A1%8C%20c%2B%2B%20%E4%BB%A3%E7%A0%81%E3%80%82%E5%9C%A8%E5%8F%91%E7%8E%B0%20c%2B%2B%20%E6%9C%AA%E5%BE%97%E5%88%B0%20SDK%20%E9%A1%B9%E7%9B%AE%E7%9A%84%E5%AE%98%E6%96%B9%E6%94%AF%E6%8C%81%E5%90%8E%EF%BC%8C%E6%88%91%E5%B0%9D%E8%AF%95%E5%AE%9E%E6%96%BD%20nxp%20%E7%A4%BE%E5%8C%BA%E9%A1%B5%E9%9D%A2%E4%B8%AD%E8%A7%A3%E9%87%8A%E7%9A%84%E4%B8%80%E4%BA%9B%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%E3%80%82%3C%2FP%3E%3CP%3E%E7%AE%80%E8%80%8C%E8%A8%80%E4%B9%8B%EF%BC%8C%E6%AD%A5%E9%AA%A4%E5%A6%82%E4%B8%8B%EF%BC%9A%E7%94%A8%20SDK%20%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%20C%20%E9%A1%B9%E7%9B%AE%EF%BC%8C%E6%B7%BB%E5%8A%A0%20C%2B%2B%20%E6%80%A7%E8%B4%A8%EF%BC%8C%E5%B0%86%20main.c%20%E9%87%8D%E5%91%BD%E5%90%8D%E4%B8%BA%20main.cpp%EF%BC%8C%E5%9C%A8%E9%A1%B9%E7%9B%AE%E8%AE%BE%E7%BD%AE%E4%B8%AD%E5%B0%86%E6%A0%87%E5%87%86%E9%93%BE%E6%8E%A5%E5%99%A8%E6%96%87%E4%BB%B6%E6%9B%B4%E6%94%B9%E4%B8%BA%E9%A1%B9%E7%9B%AE%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%9A%84%E9%93%BE%E6%8E%A5%E5%99%A8%E6%96%87%E4%BB%B6%EF%BC%88%E8%A7%81%E5%9B%BE%EF%BC%89%E3%80%82%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22Screenshot%202024-09-13%20134701.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Screenshot%202024-09-13%20134701.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F299057i2AD1C0A8374827FD%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Screenshot%202024-09-13%20134701.png%22%20alt%3D%22Screenshot%202024-09-13%20134701.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CP%3E%E5%AE%8C%E6%88%90%E8%BF%99%E4%BA%9B%E6%AD%A5%E9%AA%A4%E5%90%8E%EF%BC%8C%E6%88%91%E5%B0%B1%E5%8F%AF%E4%BB%A5%E7%94%A8%20main.cpp%20%E6%9E%84%E5%BB%BA%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE%E4%BA%86%EF%BC%8C%E4%BD%86%E6%98%AF%E5%9C%A8%20main%20%E4%B9%8B%E5%A4%96%E5%A3%B0%E6%98%8E%E7%9A%84%E5%AF%B9%E8%B1%A1%E4%B8%8D%E4%BC%9A%E8%A2%AB%E6%89%A7%E8%A1%8C%E6%88%96%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E6%88%91%E5%8F%91%E7%8E%B0%E8%A7%A3%E5%86%B3%E6%AD%A4%E9%97%AE%E9%A2%98%E7%9A%84%E4%B8%80%E4%B8%AA%E6%96%B9%E6%B3%95%E6%98%AF%E5%9C%A8%20main()%20%E7%9A%84%E5%BC%80%E5%A4%B4%E5%8C%85%E5%90%AB%20__libc_init_array()%E3%80%82%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%97%AE%E9%A2%98%E6%98%AF%E6%89%BE%E4%B8%8D%E5%88%B0%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E3%80%82%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E5%BA%93%E6%9D%A5%E8%A7%A3%E5%86%B3%E8%BF%99%E4%B8%AA%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB%EF%BC%9F%E5%9C%A8%20C%2B%2B%20%E4%B8%AD%EF%BC%8C%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E5%8F%AF%E4%BB%A5%E5%9C%A8%20main%20%E4%B9%8B%E5%A4%96%E5%88%9D%E5%A7%8B%E5%8C%96%E5%AF%B9%E8%B1%A1%E5%90%97%EF%BC%9F%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BE%93%E5%87%BA%EF%BC%9A%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E6%9E%84%E5%BB%BA%E6%96%87%E4%BB%B6%EF%BC%9A..%2FRTD%2Fsrc%2FClock_Ip_ExtOsc.c%3CBR%20%2F%3E%E8%B0%83%E7%94%A8%EF%BC%9A%E6%A0%87%E5%87%86S32DS%20C%E7%BC%96%E8%AF%91%E5%99%A8%3CBR%20%2F%3Earm-none-eabi-gcc%E2%80%9C%40RTD%2Fsrc%2FAdc_Sar_Ip.args%E2%80%9D-MMD-MP-MF%E2%80%9CRTD%2Fsrc%2FClock_Ip_ExtOsc.d%E2%80%9D-MT%E2%80%9CRTD%2Fsrc%2FClock_Ip_ExtOsc.o%E2%80%9D-o%E2%80%9CRTD%2Fsrc%2FClock_Ip_ExtOsc.o%E2%80%9D%E2%80%9C..%2FRTD%2Fsrc%2FClock_Ip_ExtOsc.c%E2%80%9D%3CBR%20%2F%3E%20..%2Fsrc%2Fmain.cpp%EF%BC%9A%E5%9C%A8%E5%87%BD%E6%95%B0%E2%80%9Cint%20main()%E2%80%9D%E4%B8%AD%EF%BC%9A%3CBR%20%2F%3E%20..%2Fsrc%2Fmain.cpp%3A59%3A2%3A%20%E9%94%99%E8%AF%AF%EF%BC%9A%E2%80%98__libc_init_array%E2%80%99%E6%9C%AA%E5%9C%A8%E6%AD%A4%E8%8C%83%E5%9B%B4%E5%86%85%E5%A3%B0%E6%98%8E%3CBR%20%2F%3E59%20%7C%20__libc_init_array()%EF%BC%9B%3CBR%20%2F%3E%20%7C%20%5E~~~~~~~~~~~~~~~~~~%3CBR%20%2F%3E%E5%88%B6%E4%BD%9C%EF%BC%9A***%20%5Bsrc%2Fsubdir.mk%3A20%3Asrc%2Fmain.o%5D%E9%94%99%E8%AF%AF%201%3CBR%20%2F%3E%E5%88%B6%E4%BD%9C%EF%BC%9A***%20%E7%AD%89%E5%BE%85%E6%9C%AA%E5%AE%8C%E6%88%90%E7%9A%84%E5%B7%A5%E4%BD%9C....%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1956507%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A_libc_init_array()%20%E5%9C%A8%E5%93%AA%E9%87%8C%E5%AE%9A%E4%B9%89%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1956507%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%26nbsp%3B%3C%2FP%3E%0A%3CP%3E_libc_init_array%20%E6%98%AF%20STD%20C%20%E5%BA%93%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%EF%BC%88%E4%BE%8B%E5%A6%82%20libc_nano.a%EF%BC%89%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E4%BD%BF%E7%94%A8%20C%2B%2B%EF%BC%8C%E5%88%99%E4%B8%8D%E9%9C%80%E8%A6%81%E9%93%BE%E6%8E%A5%20STD%20C%20%E5%BA%93%E5%B9%B6%E8%B0%83%E7%94%A8%20_libc_init_array%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E