[ITK-users] cannot find -lITKNumerics
Ais
lsustc at mail.ustc.edu.cn
Fri May 15 09:46:03 EDT 2015
I have changed the CMakeList.txt as you say, then I cmake it and creat a
makefile,when I make ,taht notes:
CMakeFiles/LinuxCutImage.dir/src/LinuxCutImage.o: In function `main':
LinuxCutImage.cxx:(.text.startup+0x126): undefined reference to
`C3DImage::C3DImage()'
LinuxCutImage.cxx:(.text.startup+0x13e): undefined reference to
`C3DImage::C3DImage()'
LinuxCutImage.cxx:(.text.startup+0x14e): undefined reference to
`C3DImage::ReadFromITKFile(char*)'
LinuxCutImage.cxx:(.text.startup+0x1c4): undefined reference to
`C3DImage::set_size(int, int, int)'
LinuxCutImage.cxx:(.text.startup+0x1e5): undefined reference to
`C3DImage::set_spacing(float, float, float)'
LinuxCutImage.cxx:(.text.startup+0x357): undefined reference to
`C3DImage::WriteToITKFile(char*)'
collect2: error: ld returned 1 exit status
make[2]: *** [LinuxCutImage] Error 1
make[1]: *** [CMakeFiles/LinuxCutImage.dir/all] Error 2
make: *** [all] Error 2
following my LinuxCutImage.cxx
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//#include "SimpleApp.h"
#include "itkExceptionObject.h"
#include "globaldefinition.h"
#include "commonfunctions.h"
#include "image3d.h"
extern int optopt;
extern int optind;
extern char *optarg;
extern int opterr;
using namespace std;
void showUsage(char *filename)
{
std::cout << "This program cuts an image." << std::endl;
std::cout << std::endl;
std::cout << "Usage: "<<std::endl;
std::cout<<std::endl;
std::cout<<"program inputimage outputimage bx ex by ey bz
ez"<<std::endl;
std::cout<<std::endl;
std::cout<<"contact: zxue"<<std::endl;
}
// main program
int main(int argc, char *argv[])
{
char inputimagefilename[200], outputimagefilename[200];
int bx,ex,by,ey,bz,ez;
if (argc==9)
{
strcpy(inputimagefilename, argv[1]);
strcpy(outputimagefilename, argv[2]);
sscanf(argv[3], "%d", &bx);
sscanf(argv[4], "%d", &ex);
sscanf(argv[5], "%d", &by);
sscanf(argv[6], "%d", &ey);
sscanf(argv[7], "%d", &bz);
sscanf(argv[8], "%d", &ez);
}
else
{
showUsage(argv[0]);
exit(1);
}
C3DImage *inputimage, *outputimage;
inputimage = new C3DImage;
outputimage = new C3DImage;
inputimage->ReadFromITKFile(inputimagefilename);
int XX,YY,ZZ;
XX = ex-bx+1;
YY = ey-by+1;
ZZ = ez-bz+1;
if ((XX<1)||(YY<1)||(ZZ<1))
{
cout<<"The small image size you input is not correct."<<endl;
showUsage(argv[0]);
exit(1);
}
outputimage->set_size(XX,YY,ZZ);
outputimage->set_spacing(inputimage->vsX, inputimage->vsY,
inputimage->vsZ);
int x,y,z;
int nx,ny,nz;
for (z=0;z<ZZ;z++)
for (y=0;y<YY;y++)
for (x=0;x<XX;x++)
{
nx = x+bx;
ny = y+by;
nz = z+bz;
if
((nx>=0)&&(ny>=0)&&(nz>=0)&&(nx<inputimage->X)&&(ny<inputimage->Y)&&(nz<inputimage->Z))
{
outputimage->img[nz][ny][nx] = inputimage->img[z][y][x];
}
else
outputimage->img[nz][ny][nx] = -2000;
}
outputimage->WriteToITKFile(outputimagefilename);
return 0;
}
--
View this message in context: http://itk-users.7.n7.nabble.com/cannot-find-lITKNumerics-tp35675p35681.html
Sent from the ITK - Users mailing list archive at Nabble.com.
More information about the Insight-users
mailing list