[Interest] Mixing C and C++ using qmake, jom, and MSVC2008 ?

Philipp Menke philipp.menke at freenet.de
Tue Jan 31 23:20:49 CET 2012


what about renaiming all *.c files into *.cpp? The C++-Compiler will 
handle the C-Code as well, even if he think its C++-Code.

Arthur

> My resulting Makefile.Debug omits all *.c files .  Does anyone have any Qt project examples of mixing C and C++ using MSVC?
>
> Thanks in advance for any direction,
>
> -Ed
>
>
> ***************************************************
>
> File: myQtProject.pro
>
> ***************************************************
>
> ------------------------------------------------------------------------
> sources += main.cpp \
>                      utility.c
>
>
> win32 {
>
>      message( "=====================" )
>
>      message( "Build Type: WIN32" )
>
>      message( "=====================" )
>
>      #DEFINES += APL=0 IBM=1 LIN=0
>
>      contains(QWT_CONFIG, QwtDll) {
>
>          DEFINES    += QT_DLL QWT_DLL
>
>      }
>
>      !win32-msvc2008:!win32-msvc2010 {
>
>          QMAKE_CXXFLAGS += -Werror -Wall -Wextra -pedantic
>
>          # Use the above C warnings for C++ as well
>
>          QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
>
>      } else {
>
>          CONFIG += warn_on
>
>          #disable the deprecated warnings that make writing standards-compliant code impossible
>
>          QMAKE_CXXFLAGS += -wd4996
>
>          QMAKE_LFLAGS += /NODEFAULTLIB:msvcrt.lib
>
>          QMAKE_LFLAGS += /NODEFAULTLIB:msvcprt.lib
>
>          DEFINES += NOMINMAX
>
>          CONFIG += debug_and_release
>
>          CONFIG += build_all
>
>      }
>
> }
>
>
> ***************************************************
>
> File: Makefile.Debug
>
> ***************************************************
>
>
>
>
> #############################################################################
>
> # Makefile for building: battery-exerciser-manager
>
> # Generated by qmake (2.01a) (Qt 4.7.4) on: Tue Jan 31 15:59:00 2012
>
> # Project:  Battery_Exerciser_Client.pro
>
> # Template: app
>
> #############################################################################
>
> ####### Compiler, tools and options
>
> CC            = @echo compiling $<  &&  cl
>
> CXX           = @echo compiling $<  &&  cl
>
> DEFINES       = -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DDEBUG -DQT_DLL -DQWT_DLL -DNOMINMAX -DQT_DLL -DQT_NO_KEYWORDS -DQT_SVG_LIB -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT
>
> CFLAGS        = -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 $(DEFINES)
>
> CXXFLAGS      = -nologo -Zm200 -Zc:wchar_t- -wd4996 -Zi -MDd -W3 -w34100 -w34189 -GR -EHsc $(DEFINES)
>
> INCPATH       = -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtCore" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtNetwork" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtGui" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtXml" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\QtSvg" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include" -I"..\common\include" -I"..\Battery_Exerciser_Server\src" -I"src" -I"..\SCPI_API\include" -I"..\SCPI_Battery_Exerciser\include" -I"..\SCPI_Battery_Exerciser\src" -I"..\common\externals\lib\qwt\src" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\include\ActiveQt" -I"obj" -I"ui" -I"..\..\..\QtSDK\Desktop\Qt\4.7.4\msvc2008\mkspecs\win32-msvc2008"
>
> LINK          = @echo linking $@&&  link
>
> LFLAGS        = /LIBPATH:"c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib" /NOLOGO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcprt.lib /DEBUG /MANIFEST /MANIFESTFILE:"obj\battery-exerciser-manager.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /VERSION:0.2240
>
> LIBS          = c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\qtmaind.lib /LIBPATH:C:/projects/NTI_Battery_Exerciser/Battery_Exerciser_Client/../common/externals/lib/qwt/lib C:/projects/NTI_Battery_Exerciser/Battery_Exerciser_Client/../common/externals/lib/qwt/lib\qwtd.lib c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\QtSvgd4.lib c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\QtXmld4.lib c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\QtGuid4.lib c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\QtNetworkd4.lib c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\QtCored4.lib obj\resources.res /LIBPATH:C:\OpenSSL-Win32_full\lib
>
> QMAKE         = c:\qtsdk\desktop\qt\4.7.4\msvc2008\bin\qmake.exe
>
> IDC           = c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\bin\idc.exe
>
> IDL           = midl
>
> ZIP           = zip -r -9
>
> DEF_FILE      =
>
> RES_FILE      = obj\resources.res
>
> COPY          = copy /y
>
> COPY_FILE     = $(COPY)
>
> COPY_DIR      = xcopy /s /q /y /i
>
> DEL_FILE      = del
>
> DEL_DIR       = rmdir
>
> MOVE          = move
>
> CHK_DIR_EXISTS= if not exist
>
> MKDIR         = mkdir
>
> INSTALL_FILE    = $(COPY_FILE)
>
> INSTALL_PROGRAM = $(COPY_FILE)
>
> INSTALL_DIR     = $(COPY_DIR)
>
> ####### Output directory
>
> OBJECTS_DIR   = obj
>
> ####### Files
>
> SOURCES       = src\main.cpp
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest




More information about the Interest mailing list