执行Leptonica图像处理库中的代码示例

Jes*_*gui 4 c linker compilation

我正在尝试编译然后执行Leptonica示例程序 colorquant_reg.c

事实:

  • 操作系统: Ubuntu

  • 地点: leptonlib-1.67/src/colorquant_reg.c

    (我把它移到src因为我到现在也没怎么跟那个失踪的编译器allheaders.h库文件位于/src而不是在原来的位置colorquant_reg.cleptonlib-1.67/prog)

  • 我尝试了什么: gcc -I. colorquant_reg -o out

  • 预期结果:我可以用来对我的.tif文件进行颜色量化的可执行文件.

  • 错误:

    /temp/cckdQZcM.o: In function main':
    colorquant_reg.c:(.text+0x37: undefined reference to regTestSetup
    colorquant_reg.c:(.text+0xa5: undefined reference to regTestCleanup
    /tmp/cckdQZcM.o: In function TestImage'
    colorquant_reg.c:(.text+0xe0: undefined reference to pixRead
    
    Run Code Online (Sandbox Code Playgroud)
  • 问题1:我如何进行编译该程序?

  • 问题2:未定义的引用是否因为我缺少进一步包含的内容而突然出现?

干杯

mpe*_*kov 6

这就是我所做的:

  • 下载http://www.leptonica.com/source/leptonlib-1.67.tar.gz
  • 将其解压缩到 /home/misha/src
  • ./configure; make
  • 复制prog/colorquant_reg.c/home/misha/Desktop/stackoverflow
  • /home/misha/Desktop/stackoverflow/colorquant_reg.c根据自己的喜好编辑- 它不再是图书馆的一部分了.所以我想这是你可以添加新标题等的地方.

然后,从/home/misha/Desktop/stackoverflow,我可以使用此命令编译该文件:

export LIBLEPT=/home/misha/src/leptonlib-1.67/
gcc colorquant_reg.c -I$LIBLEPT/src -L$LIBLEPT/src/.libs -llept -o colorquant_reg.out
Run Code Online (Sandbox Code Playgroud)

第一行只是为了方便 - 我们现在可以$LIBLEPT用来引用长路径名.第二行是汇编:

  • -I 告诉编译器在哪里查找包含文件
  • -L 告诉编译器在哪里查找库文件(对于链接器)
  • -llept 告诉链接器链接leptonica(它会寻找 liblept.so
  • -o 指定现在存在的输出文件 ~/Desktop/stackoverflow/colorquant_reg.out