I am trying to statically link a Qt application with a Google Breakpad on Windows, but always get unresolved symbolic errors. I am using qmake and VC ++ 2008, and there seem to be some problems with my project file. It looks like the linker ignored my LIBS specification because I get an error, regardless of whether I add the library to LIBS or not.
I compiled Breakpad using:
vcbuild /platform:Win32
There is an example in Google Breakpead in src \ processor \ test_app.cc. If I compile it as suggested, everything will be fine:
C:\test>cl /Zi test_app.cc /Fetest_app.exe /IC:\google-breakpad\src C:\google-breakpad\src\client\windows\Release\lib\exception_handler.lib C:\google-breakpad\src\client\windows\Release\lib\crash_generation_client.lib C:\google-breakpad\src\client\windows\Release\lib\common.lib
However, if I try to build it with qmake using a similar .pro file, I get the same unresolved character errors. This is the .pro file that I use for it:
TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . INCLUDEPATH += C:/google-breakpad/src SOURCES += test_app.cc LIBS += C:/google-breakpad/src/client/windows/Release/lib/exception_handler.lib LIBS += C:/google-breakpad/src/client/windows/Release/lib/crash_generation_client.lib LIBS += C:/google-breakpad/src/client/windows/Release/lib/common.lib PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/exception_handler.lib PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/crash_generation_client.lib PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/common.lib
Build:
C:\test>qmake -config release C:\test>nmake Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" - f Makefile.Release Microsoft (R) Program Maintenance Utility Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQ T_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAV E_SSE2 -DQT_THREAD_SUPPORT -I"..\Qt\4.7.1\include\QtCore" -I"..\Qt\4.7.1\include \QtGui" -I"..\Qt\4.7.1\include" -I"." -I"..\google-breakpad\src" -I"..\Qt\4.7.1\ include\ActiveQt" -I"release" -I"..\Qt\4.7.1\mkspecs\win32-msvc2008" -Forelease\ @C:\Windows\Temp\nm94.tmp test_app.cc .\test_app.cc(43) : warning C4100: 'assertion' : unreferenced formal parameter .\test_app.cc(42) : warning C4100: 'exinfo' : unreferenced formal parameter .\test_app.cc(42) : warning C4100: 'context' : unreferenced formal parameter .\test_app.cc(41) : warning C4100: 'dump_path' : unreferenced formal parameter .\test_app.cc(62) : warning C4100: 'argv' : unreferenced formal parameter .\test_app.cc(62) : warning C4100: 'argc' : unreferenced formal parameter link /LIBPATH:"c:\Qt\4.7.1\lib" /NOLOGO /INCREMENTAL:NO /MANIFEST /MANIF ESTFILE:"release\test.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPEND ENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' pub licKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:rele ase\test.exe @C:\Windows\Temp\nm95.tmp LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; us e /NODEFAULTLIB:library test_app.obj : error LNK2019: unresolved external symbol "public: __thiscall goo gle_breakpad::ExceptionHandler::ExceptionHandler(class std::basic_string<unsigne d short,struct std::char_traits<unsigned short>,class std::allocator<unsigned sh ort> > const &,bool (__cdecl*)(void *,struct _EXCEPTION_POINTERS *,struct MDRawA ssertionInfo *),bool (__cdecl*)(unsigned short const *,unsigned short const *,vo id *,struct _EXCEPTION_POINTERS *,struct MDRawAssertionInfo *,bool),void *,int)" ( ??0ExceptionHandler@google _breakpad@ @ QAE@ABV ?$basic_string@GU ?$char_traits@G @s td@ @ V?$allocator@G @ 2@ @ std@ @ P6A_NPAXPAU_EXCEPTION_POINTERS@ @PAUMDRawAssertionInfo @@@ ZP6A_NPBG5123_N@Z1H @Z) referenced in function _main release\test.exe : fatal error LNK1120: 1 unresolved externals NMAKE : fatal error U1077: '"C:\Program files\Microsoft Visual Studio 9.0\VC\BIN \link.EXE"' : return code '0x460' Stop. NMAKE : fatal error U1077: '"C:\Program files\Microsoft Visual Studio 9.0\VC\BIN \nmake.exe"' : return code '0x2' Stop.
What am I missing in a .pro file?
Thanks in advance.