2010.05.02 01:54 "[Tiff] qmake (Qt) and libtiff "undefined symbols" problem on mac (snow leopard).", by Dave Sun

2010.05.02 02:51 "Re: [Tiff] qmake (Qt) and libtiff "undefined symbols" problem on mac (snow leopard).", by Chris Cox

The important line would be "ld: warning: in /usr/local/lib/libtiff.dylib, file is not of required architecture" You have a libtiff that isn't compiled for your architecture.

(probably 32 bit when you need 64, or vice versa)

Chris

________________________________________

From: tiff-bounces@lists.maptools.org [tiff-bounces@lists.maptools.org] On Behalf Of Dave Sun [hotdog.sun@gmail.com]

Dear folks,

I have problems using qmake to compile my simplest libtiff program. Here are the information about my system.

computer: Darwin Darwin Kernel Version 10.2.0: Tue Nov 3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386 Qt version: Qt 4.6.2

libtiff version: 3.9.2
operating system: snow leopard.

Simplest program:

#include <QtCore/QCoreApplication>
#include "tiff.h"
#include "tiffio.h"
#include <iostream>

int main(int argc, char *argv[])
{
    //QCoreApplication a(argc, argv);
    TIFF* tif = TIFFOpen("foo.tif", "r");
    if(tif == NULL)
       std::cout << "could not open the file";
    TIFFClose(tif);
    //return a.exec();
std::cout << "hello";
    return 0;
}

my pro file:

QT -= gui
TARGET = libtiffSimpleTest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
LIBS += -ltiff
SOURCES += main.cpp

I used Qt creator as my IDE. When I run compiling program I got the following error:

ld: warning: in /usr/local/lib/libtiff.dylib, file is not of required architecture

Undefined symbols:

"_TIFFOpen", referenced from:

_main in main.o

ld: symbol(s) not found

collect2: ld returned 1 exit status

make: *** [libtiffSimpleTest] Error 1

However, when I just use the following:

g++ main.cpp -ltiff

It works well. What is the problem here?