I am using AT Open 4.00.a02 and have a problem while including eDlib in my project.
First of all, it was suprising that there was no document that contains information about eDlib in the AT Open package. I had to download a document, that explains eDlib APIs, from internet myself.
Then I’ve used some of eDlib APIs, ed_GPRSSetConfig() and ed_Init(), in my project. But the project failed to compile and producing error, “/cygdrive/C/OpenAT/Tools/GCC/4.0.1.0/bin/arm-elf-nm: ‘gcc_Hello_World_FG.elf’: No such file”.
When I comment out those lines out, then it compiled ok.
I guess the project failed to link the eDlib.
I have located the eDlib files to the same place where other gcc_wmadl_x.x.x.lib files are kept.
I also located the eDlib header files to the same place where other adl header files are kept.
I haven’t modified the project link configuration.
Now, my application only calls ‘ed_Init()’ function.
And I’m still getting the same error.
So I have added
" EXTERNAL_LIB_LIST = gcc_eDLib_310b01.lib \ "
to the make file.
But I’m still getting an error as following:
Copy all needed library and object files
Make links /cygdrive/C/OpenAT/V400.a02/TgtGen/Adl/Library/gcc_eDLib_310b01.lib …/out/gcc_eDLib_310b01.lib
Make links /cygdrive/C/OpenAT/V400.a02/TgtGen/Adl/Library/gcc_wmadl_3.3.2.0.1.lib …/out/gcc_wmadl_3.3.2.0.1.lib
… Link step in progress …
… Link gcc_Hello_World_FG.bin …
/cygdrive/C/OpenAT/Tools/GCC/4.0.1.0/bin/arm-elf-nm: ‘gcc_Hello_World_FG.elf’: No such file
make: *** [make_single_bin] Error 1
Note that the ‘gcc_eDLib_310b01.lib’ is now linked.
I am still not sure why I’m getting compile error. Maybe ‘ed_Init()’ function is not exist in the lib?
sort of message when there is a linker error - usually when I have a function that I am calling that has not been declared properly, or a missing (or misnamed) funtion. Check out your function prototypes and order of functions in your source file.
In order to access it, I had to include “ed_gprs.h”.
It is called from the adl_main function like “ed_Init();”.
The declaration for the function is s8 ed_Init(void);
If I comment out the part, it compiles successfully without any problem.
I think the problem is cause from linking ‘arm_eDLib_310b01.lib’(or gcc_eDLib_310b01.lib) file.
I think the declaration of the function ed_Init () is in the file "ed_common.h" and not in "ed_gprs.h". Could you please include this file in your applicaiton and then try to compile it.
You can also note that whenever you get any linking error while compiling your project, you can go to the our directory and then check out the <projectname_memoryused_err_lnk.tmp> file.
For instance, if you are using gcc compile to compile a Hello world project for a 32 bit product and getting some linking error, then you can go to project workspace-> gcc -> out directory and check out the gcc_Helloworld_32_err_lnk.tmp file to find out the cause of linking failure.
Hope this information helps you solve your problem.