[MINC-users] Problem Compiling Minc

Bilal Abdul Mujeeb bilal_mujeeb at hotmail.com
Tue Apr 22 01:57:14 EDT 2008


Hi,
I am using minc library 1.5 to develop some applications. I am working simple c++ classes using minc headers. 
I am using them on OS X 10.5.2 with GCC 4.x.x for MAC, it works fine on my mac. But when i took the same code on a linux machine it gives me linking errors. The link libraries for minc in both mac and linux sytem are .a and .la.

 I have added the library path in make file as well but no use. I have tried using Extern "C" to declare function again in my code but in mac it dont give me any error but on linux its gives error of redecleration.

my compiler output is as follow: 
------------------------------------------------------------------
bilal at BILAL:~/workspace/MincTest$ make
g++ -O2 -g -Wall -fmessage-length=0 -Wno-deprecated   -c -o MincThreshold.o MincThreshold.cpp
MincThreshold.cpp:172:2: warning: no newline at end of file
MincThreshold.cpp: In member function ‘void MincThreshold::printVolumeInfo(volume_struct*, int*)’:
MincThreshold.cpp:28: warning: unused variable ‘value’
MincThreshold.cpp: In member function ‘int MincThreshold::saveVolume(volume_struct*, char*, char*)’:
MincThreshold.cpp:168: warning: deprecated conversion from string constant to ‘char*’
g++ -O2 -g -Wall -fmessage-length=0 -Wno-deprecated   -c -o MincCorrectPV.o MincCorrectPV.cpp
MincCorrectPV.cpp: In member function ‘int MincCorrectPV::saveVolume(volume_struct*, char*, char*)’:
MincCorrectPV.cpp:82: warning: deprecated conversion from string constant to ‘char*’
g++ -O2 -g -Wall -fmessage-length=0 -Wno-deprecated   -c -o CheckDimensions.o CheckDimensions.cpp
CheckDimensions.cpp:49:2: warning: no newline at end of file
CheckDimensions.cpp: In member function ‘int CheckDimensions::saveVolume(volume_struct*, char*, char*)’:
CheckDimensions.cpp:45: warning: deprecated conversion from string constant to ‘char*’
g++ -O2 -g -Wall -fmessage-length=0 -Wno-deprecated   -c -o MincTest.o MincTest.cpp
MincTest.cpp:33:2: warning: no newline at end of file
g++ -lminc -lnetcdf -lvolume_io -Wl -o MincTest MincThreshold.o MincCorrectPV.o CheckDimensions.o MincTest.o
MincThreshold.o: In function `MincThreshold::saveVolume(volume_struct*, char*, char*)':
/home/bilal/workspace/MincTest/MincThreshold.cpp:168: undefined reference to `output_modified_volume'
MincThreshold.o: In function `MincThreshold::normalThreshold(volume_struct*, int*, double, int)':
/home/bilal/workspace/MincTest/MincThreshold.cpp:150: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincThreshold.cpp:158: undefined reference to `set_volume_real_value'
MincThreshold.o: In function `MincThreshold::bandThreshold(volume_struct*, int*, double, double, int)':
/home/bilal/workspace/MincTest/MincThreshold.cpp:128: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincThreshold.cpp:136: undefined reference to `set_volume_real_value'
MincThreshold.o: In function `~MincThreshold':
/home/bilal/workspace/MincTest/MincThreshold.cpp:12: undefined reference to `delete_volume'
MincThreshold.o: In function `MincThreshold::printVolumeInfo(volume_struct*, int*)':
/home/bilal/workspace/MincTest/MincThreshold.cpp:36: undefined reference to `get_volume_nc_data_type'
/home/bilal/workspace/MincTest/MincThreshold.cpp:40: undefined reference to `get_volume_n_dimensions'
/home/bilal/workspace/MincTest/MincThreshold.cpp:45: undefined reference to `get_volume_voxel_max'
/home/bilal/workspace/MincTest/MincThreshold.cpp:46: undefined reference to `get_volume_voxel_min'
/home/bilal/workspace/MincTest/MincThreshold.cpp:50: undefined reference to `get_volume_real_max'
/home/bilal/workspace/MincTest/MincThreshold.cpp:51: undefined reference to `get_volume_real_min'
MincThreshold.o: In function `MincThreshold::parseArguments(int, char**)':
/home/bilal/workspace/MincTest/MincThreshold.cpp:97: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincThreshold.cpp:98: undefined reference to `get_volume_sizes'
/home/bilal/workspace/MincTest/MincThreshold.cpp:106: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincThreshold.cpp:107: undefined reference to `get_volume_sizes'
/home/bilal/workspace/MincTest/MincThreshold.cpp:85: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincThreshold.cpp:86: undefined reference to `get_volume_sizes'
/home/bilal/workspace/MincTest/MincThreshold.cpp:75: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincThreshold.cpp:76: undefined reference to `get_volume_sizes'
MincThreshold.o: In function `~MincThreshold':
/home/bilal/workspace/MincTest/MincThreshold.cpp:12: undefined reference to `delete_volume'
/home/bilal/workspace/MincTest/MincThreshold.cpp:12: undefined reference to `delete_volume'
MincCorrectPV.o: In function `MincCorrectPV::correctPV_Morphology(volume_struct*, int*, volume_struct*, int*, int, double, volume_struct*, volume_struct*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:114: undefined reference to `copy_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:122: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:123: undefined reference to `set_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:128: undefined reference to `set_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:129: undefined reference to `set_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:143: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:149: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:150: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:164: undefined reference to `get_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:166: undefined reference to `get_volume_real_value'
MincCorrectPV.o:/home/bilal/workspace/MincTest/MincCorrectPV.cpp:164: more undefined references to `get_volume_real_value' follow
MincCorrectPV.o: In function `MincCorrectPV::correctPV_Morphology(volume_struct*, int*, volume_struct*, int*, int, double, volume_struct*, volume_struct*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:173: undefined reference to `set_volume_real_value'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:167: undefined reference to `set_volume_real_value'
MincCorrectPV.o: In function `MincCorrectPV::saveVolume(volume_struct*, char*, char*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:82: undefined reference to `output_modified_volume'
MincCorrectPV.o: In function `MincCorrectPV::correct_GM_PV(char*, char*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:91: undefined reference to `copy_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:92: undefined reference to `copy_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:106: undefined reference to `delete_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:107: undefined reference to `delete_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:108: undefined reference to `delete_volume'
MincCorrectPV.o: In function `MincCorrectPV::checkMincRange(volume_struct*, double, double)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:75: undefined reference to `get_volume_real_min'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:75: undefined reference to `get_volume_real_max'
MincCorrectPV.o: In function `MincCorrectPV::praseParameters(int, char**)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:40: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:40: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:42: undefined reference to `get_volume_sizes'
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:43: undefined reference to `get_volume_sizes'
MincCorrectPV.o: In function `MincCorrectPV::correctPV_Morphology(volume_struct*, int*, volume_struct*, int*, int, double, volume_struct*, volume_struct*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:182: undefined reference to `delete_volume'
MincCorrectPV.o: In function `MincCorrectPV::correct_GM_PV(char*, char*)':
/home/bilal/workspace/MincTest/MincCorrectPV.cpp:109: undefined reference to `delete_volume'
CheckDimensions.o: In function `CheckDimensions::saveVolume(volume_struct*, char*, char*)':
/home/bilal/workspace/MincTest/CheckDimensions.cpp:45: undefined reference to `output_modified_volume'
CheckDimensions.o: In function `CheckDimensions::viewDimensions(volume_struct*, int*)':
/home/bilal/workspace/MincTest/CheckDimensions.cpp:31: undefined reference to `get_volume_voxel_max'
/home/bilal/workspace/MincTest/CheckDimensions.cpp:35: undefined reference to `set_volume_real_value'
CheckDimensions.o: In function `CheckDimensions::parseArguments(int, char**)':
/home/bilal/workspace/MincTest/CheckDimensions.cpp:18: undefined reference to `input_volume'
/home/bilal/workspace/MincTest/CheckDimensions.cpp:19: undefined reference to `get_volume_sizes'
CheckDimensions.o: In function `~CheckDimensions':
/home/bilal/workspace/MincTest/CheckDimensions.cpp:12: undefined reference to `delete_volume'
/home/bilal/workspace/MincTest/CheckDimensions.cpp:12: undefined reference to `delete_volume'
/home/bilal/workspace/MincTest/CheckDimensions.cpp:12: undefined reference to `delete_volume'
collect2: ld returned 1 exit status
make: *** [MincTest] Error 1
--------------------------------------------------------------------------------------

my make file......

LDFLAGS = -lminc -lnetcdf -lvolume_io -Wl

CXXFLAGS =    -O2 -g -Wall -fmessage-length=0 -Wno-deprecated

OBJS =        MincThreshold.o MincCorrectPV.o CheckDimensions.o MincTest.o    

LIBS =

TARGET =    MincTest

$(TARGET):    $(OBJS)
    $(CXX) $(LDFLAGS) -o $(TARGET) $(OBJS) $(LIBS)

all:    $(TARGET)

clean:
    rm -f $(OBJS) $(TARGET)



Regards,
Bilal

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


More information about the MINC-users mailing list