我试图运行一个在Eclipse中使用CImg的简单程序:
#include <iostream>
#include<X11/Xlib.h>
#include "CImg.h"
using namespace cimg_library;
int main()
{
// read a jpg image
CImg<float> imgin("frog.jpg");
CImg<float> black_white;
// do some computation on the pixels (R,G,B values)
for(int i=0; i<100; i++)
for(int j=0; j<10; j++)
imgin(i,i+j,0) = imgin(i,i+j,1) = imgin(i, i+j, 2) = 0;
// write image back
imgin.save("frog2.jpg");
black_white = imgin.get_RGBtoYCbCr().get_channel(0);
black_white.save("frog3.jpg");
return(0);
}
但我收到此错误:
g++ -O3 -Wall -std=c++11 -lX11 -L/usr/X11R6/lib -lm -pthread -MMD -MP -MF"src/per_iniziare.d" -MT"src/per_iniziare.d" -o "src/per_iniziare.o" "../src/per_iniziare.cpp"
/tmp/cc1l38bP.o: In function `cimg_library::CImgDisplay::paint(bool) [clone .part.18]':
per_iniziare.cpp:(.text+0x4f2): undefined reference to `XPutImage'
per_iniziare.cpp:(.text+0x625): undefined reference to `XSendEvent'
/tmp/cc1l38bP.o: In function `cimg_library::CImgDisplay::move(int, int) [clone .part.142]':
per_iniziare.cpp:(.text+0x101a): undefined reference to `XMoveWindow'
如您所见,看起来正确的库已链接
g++ -O3 -Wall -std=c++11 -lX11 -L/usr/X11R6/lib -lm -pthread [...]
,实际上,如果我尝试使用
在终端中手动编译.cpp文件 g++ -O3 -o try main.cpp -L/usr/X11R6/lib -lm -lX11 -pthread
它完美无缺。
我还尝试通过转到Project&gt;来指定库。属性&gt; C / C ++ Build&gt;设置,但没有任何变化。