Jes*_*gui 4 c linker compilation
我正在尝试编译然后执行Leptonica示例程序 colorquant_reg.c
事实:
操作系统: Ubuntu
地点: leptonlib-1.67/src/colorquant_reg.c
(我把它移到src因为我到现在也没怎么跟那个失踪的编译器allheaders.h库文件位于/src而不是在原来的位置colorquant_reg.c的leptonlib-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:未定义的引用是否因为我缺少进一步包含的内容而突然出现?
干杯
这就是我所做的:
/home/misha/src./configure; makeprog/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