C ++:为什么libtiff打破了控制台输出?

时间:2015-07-20 22:15:21

标签: c++ eclipse mingw cout libtiff

所以最后我不能通过研究来帮助自己了。希望你能帮助我。 我最近决定在学士论文的背景下学习C ++:我的第一个目标是用libtiff-library读取tiff图像的像素值。然而,每次调用库的功能似乎都会破坏我程序的一部分。

这是简单的“HelloWorld”-Program,它可以正常工作:

#include "tiffio.h"
#include <iostream>
using namespace std;

int main() {
    cout << "Hello" << endl;
//  TIFF* tif = TIFFOpen("path to .tif", "r");
    return 0;
}

当我取消注释main()中的第二行时,代码仍然编译没有错误(除了没有使用'tif'的警告),我可以像往常一样启动程序。然而,没有任何东西被打印到控制台了。不是“你好”也不是任何错误。

可能出现错误的任何建议?代码应该没问题,我想我在设置库时搞砸了一些东西。这是我做的:

  1. 我设法在64位Win7上为C ++和MinGW(32位)设置eclipse(Mars,32bit),然后下载libtiff 4.0.4并按照this指令构建它。

  2. 我使用上述代码创建了一个新的C ++项目,并在项目属性中进行了以下调整:

    • 项目 - &gt;属性 - &gt; C / C ++一般 - &gt;路径和符号 - &gt;库 路径 - &GT;新增“D:/ ... /tiff-4.0.4/libtiff/.libs”

    • Project-&gt; Properties-&gt; C / C ++ Build-&gt; MinGW C ++ Linker-&gt; Miscellaneous-&gt;将Linkerflags设置为“-static-libgcc” -static-的libstdc ++”

    • 项目 - >属性 - > C / C ++构建 - > MinGW C ++链接器 - &gt;库 - &gt;组 (-L)到“D:/ ... /tiff-4.0.4/libtiff/.libs”和(-l)到“libtiff”

  3. 我知道.tif是一个有效的文件,因为我使用BitMiracle的LibTiff.NET库在C#中实现了部分程序。

    提前谢谢!

    编辑1:即使从未调用过TIFF* tif = TIFFOpen("path to .tif", "r");但在代码的死部分写下来,也会发生同样的错误。调试也不起作用,程序似乎在执行单行之前终止(退出值0),没有任何错误报告。

1 个答案:

答案 0 :(得分:0)

我有同样的问题,并设法摆脱它。

我在64位Win7上为C ++和MinGW设置了eclipse(Mars),然后下载了libtiff 4.0.4并按照this指令构建了它。 构建之后,我得到了两个包含文件的目录:

  1. 包括

    • tiff.h
    • tiffconf.h
    • tiffio.h
    • tiffio.hxx
    • tiffvers.h
  2. LIB

    • libtiff.a
    • libtiff.dll.a
    • libtiff.la
    • libtiffxx.a
    • libtiffxx.dll.a
    • libtiffxx.la
  3. 我还将所有包含文件 libtiff.a 链接到我的项目并解决了它,即现在执行了其他行。

    我希望,我帮助了这篇文章。