This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

undefined symbols although they exist?



Hello,

 

trying to compile FFTW for C6747 (I need FFTs far bigger than 8k lines of DSPLIB), I ran into some trouble. After I managed to compile and ar all C files, compilation is succeeding, but the linker complains:

'Invoking: Linker'
"C:/Programme/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.2.2/bin/cl6x" -mv6740 -g --diag_warning=225 -z -m"fftw_benchmark.map" --warn_sections -i"C:/Programme/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.2.2/lib" -i"C:/Programme/Texas Instruments/ccsv4/tools/compiler/C6000 Code Generation Tools 7.2.2/include" -i"C:/Programme/Texas Instruments/bios_5_41_10_36/packages/ti/rtdx/lib/c6000" -i"C:/Programme/Texas Instruments/bios_5_41_10_36/packages/ti/bios/lib" --reread_libs --rom_model -o "fftw_benchmark.out" -l"./fftwf_benchmarkcfg.cmd"  "./main.obj" "./fftwf_benchmarkcfg_c.obj" "./fftwf_benchmarkcfg.obj" -l"D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib" -l"libc.a"
<Linking>

 undefined                   first referenced                                      
  symbol                         in file                                           
 ---------                   ----------------                                      
 _fftw_dft_conf_standard     D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<configure.obj>
 _fftw_mkplan                D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<plan.obj>    
 _fftw_mkproblem             D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<problem2.obj>
 _fftw_mkproblem_unsolvable  D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<problem2.obj>
 _fftw_plan_awake            D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<apiplan.obj> 
 _fftw_plan_destroy_internal D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<apiplan.obj> 
 _fftw_problem_destroy       D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<apiplan.obj> 
 _fftw_rdft_conf_standard    D:\Projekte\ccs\fftw-3.2.2\lib\fftwf.lib<configure.obj>

error: unresolved symbols remain

While compiling fftw with cl6x -c -mv6740 --gcc -fr ./lib --verbose I got this message:

TMS320C6x C/C++ Compiler                v7.2.2
Tools Copyright (c) 1996-2011 Texas Instruments Incorporated
   "dft/conf.c"   ==> fftw_dft_conf_standard

ar6x rv fftwf.lib *.obj said:

 ==>  add 'conf.obj'

 

So _fftw_dft_conf_standard should be well defined and available for the linker. I have tried to add conf.obj manually to the linker search path or to copy it directly to the project, nothing helped.

 

Any ideas?

TIA,

Markus

  • Markus,

    If you run the command: ar6x -tv fftw.lib, do you see conf.obj listed as one of the object files in the library?

    Another useful tool to inspect the symbols in the library is the object file display utility (ofd6x). Run ofd6x on the library and generate a text or xml file (ofd6x -g fftw.lib > fftw.ofd). This file will contain details on the object files within the library including symbol information and could be helpful in checking if the symbols listed above are defined.

  • Sorry, it was a PEBKAC :(

     

    I was sure that the missing function is in conf.obj, compiled from conf.c. Well, I was right there, but unfortunately there are conf.c files in more than one directory in fftw... Since I can't use the configure script that comes with fftw, I have no makefile and compiled every .c file to a .obj, and they all went to the same directory... So I overwrote some of the conf.obj files and was missing some functions.

     

    In the end, I found it out using nm6x

    cu

    Markus