Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Issues compiling c files in Qt creator

Issues compiling c files in Qt creator

Scheduled Pinned Locked Moved Installation and Deployment
28 Posts 8 Posters 21.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    DenisKormalev
    wrote on last edited by
    #5

    You can add it as custom target to PRE_TARGETDEPS variable I think.

    1 Reply Last reply
    0
    • B Offline
      B Offline
      benardmens
      wrote on last edited by
      #6

      [quote author="Tobias Hunger" date="1291577543"]Why a base64 library? Qt can de/encode base64 all by itself (QByteArray::fromBase64 and toBase64).[/quote]

      Hi Toby,
      Thanks for the reply, that class is part of the source of a library that I am trying to use. It builds fine when running a normal gcc session from the command line so I was a bit surprised when I run into the issue. I'm not a c++ expert by any stretch ,just learning as I go along, but if I understand what you are suggesting it means that I have to go through the whole library replacing the instances of base64 calls with the QByteArray calls, and I don't know how that will affect the rest of the library which was why I wanted to see if there was something I should be doing instead.

      Thanks again

      1 Reply Last reply
      0
      • B Offline
        B Offline
        benardmens
        wrote on last edited by
        #7

        [quote author="Denis Kormalev" date="1291577718"]You can add it as custom target to PRE_TARGETDEPS variable I think.
        [/quote]

        Thanks for that Denis, will try that right away and let you know how it goes.

        1 Reply Last reply
        0
        • T Offline
          T Offline
          tobias.hunger
          wrote on last edited by
          #8

          benardmens: Oh, if this is part of 3rd party code then forget my comment.

          Many people seem to not know that Qt can de/encode base64 all by itself... I have seen more than one piece of code where some developer dragged in a 3rd party library just to write some bytes in base64 encoding.

          1 Reply Last reply
          0
          • G Offline
            G Offline
            goetz
            wrote on last edited by
            #9

            Unfortunately I cannot download the files (too many downloads in parallel). So, sorry, can't help with this.

            http://www.catb.org/~esr/faqs/smart-questions.html

            1 Reply Last reply
            0
            • B Offline
              B Offline
              benardmens
              wrote on last edited by
              #10

              [quote author="Denis Kormalev" date="1291577718"]You can add it as custom target to PRE_TARGETDEPS variable I think.
              [/quote]

              Hi Denis, tried that but it didn't work. The way I understood it is to add a custom Makefile argument to the PRE_TARGETDEPS? Thanks

              [edit: quoe fixed / Denis Kormalev]

              1 Reply Last reply
              0
              • B Offline
                B Offline
                benardmens
                wrote on last edited by
                #11

                [quote author="Volker" date="1291582514"]Unfortunately I cannot download the files (too many downloads in parallel). So, sorry, can't help with this.[/quote]

                Hi Volker,
                These are some new links which shouldnt give the same problem,

                http://www.mediafire.com/?z13ki4t48iqs8ke
                http://www.mediafire.com/?nq14e8527bj4l7i
                http://www.mediafire.com/?1a23rh9ngxpe3dm

                I would appreciate any help as I've been trying to get this working for a day now. Thanks again

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  DenisKormalev
                  wrote on last edited by
                  #12

                  benardmens, can you show your .pro file (please post its content here in @ tags)?

                  1 Reply Last reply
                  0
                  • X Offline
                    X Offline
                    xsacha
                    wrote on last edited by
                    #13

                    You could put the files inside a zip or tar. Makes it easier to upload and download (for future reference).

                    Theres a site called wikiupload that doesn't have a time delay to download.

                    • Sacha
                    1 Reply Last reply
                    0
                    • B Offline
                      B Offline
                      benardmens
                      wrote on last edited by
                      #14

                      [quote author="Denis Kormalev" date="1291620464"]benardmens, can you show your .pro file (please post its content here in (at) tags)?[/quote]

                      Hi Denis,
                      I just got a work around to work by building it as a library and adding it manually to the libs. However , i would still like to be able to understand how to do it properly if possible.

                      The current .pro file is below as requested

                      @
                      #-------------------------------------------------

                      Project created by QtCreator 2010-12-05T20:36:45

                      #-------------------------------------------------

                      QT += core gui

                      TARGET = PolicyFrameworkSpy
                      TEMPLATE = app

                      unix:LIBS +=-L/usr/include/libxml2
                      /usr/local/lib/libhaggle.a

                      unix:INCLUDEPATH +=/usr/local/include/libhaggle/
                      /usr/include/libxml2 \

                      QMAKE_CFLAGS_DEBUG += -std=gnu99 -O2
                      QMAKE_LFLAGS += -lxml2 -lz -lpthread -licucore -lm
                      SOURCES += main.cpp
                      PolicyFramework.cpp

                      HEADERS += PolicyFramework.h

                      FORMS += PolicyFramework.ui
                      @

                      And the one I was having issues with

                      @
                      #-------------------------------------------------

                      Project created by QtCreator 2010-12-05T16:43:38

                      #-------------------------------------------------

                      QT += core gui

                      TARGET = PolicyFrameworkDesktop
                      TEMPLATE = app

                      INCLUDEPATH +=/QTDev/PolicyFrameworkDesktop/libhaggle

                      SOURCES += main.cpp
                      PolicyFrameworkSpy.cpp
                      libhaggle/base64.c

                      HEADERS += PolicyFrameworkSpy.h
                      libhaggle/base64.h

                      FORMS += PolicyFrameworkSpy.ui
                      @

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        benardmens
                        wrote on last edited by
                        #15

                        [quote author="xsacha" date="1291620625"]You could put the files inside a zip or tar. Makes it easier to upload and download (for future reference).

                        Theres a site called wikiupload that doesn't have a time delay to download.[/quote]

                        Thanks for that, I will keep that in mind for later. Thanks for the help everyone. This is one of the most responsive forums I've ever been on!

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          DenisKormalev
                          wrote on last edited by
                          #16

                          benardmens, try to add something like this
                          @
                          someLib.target = someLibBuild
                          someLib.commands = cd path/to/lib && make
                          QMAKE_EXTRA_TARGETS += someLib
                          PRE_TARGETDEPS += someLibBuild
                          @

                          1 Reply Last reply
                          0
                          • G Offline
                            G Offline
                            goetz
                            wrote on last edited by
                            #17

                            [quote author="benardmens" date="1291619302"]
                            These are some new links which shouldnt give the same problem,

                            I would appreciate any help as I've been trying to get this working for a day now. Thanks again[/quote]

                            I put base64.h and and base64.c in a small project and could compile it and use its base64_encode_alloc in a C++ program.

                            qmake calls g++ or gcc depending on the file extension (cpp or c). I used no pre targets or libs or something like that.

                            http://www.catb.org/~esr/faqs/smart-questions.html

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              maciej
                              wrote on last edited by
                              #18

                              Hi all,
                              1st thing is that you are not using class. There is no such thing in C as class or object!
                              Your problem is that you're using qt tools to compile (.pro file & qmake) which generate Makefiles only for C++. If you want to compile C code with QtCreator you should start using "cmake":http://cmake.org/ (which is supported by QtCreator) instead of .pro files.

                              Earth is a beta site.

                              1 Reply Last reply
                              0
                              • G Offline
                                G Offline
                                goetz
                                wrote on last edited by
                                #19

                                Not quite true.

                                @
                                HEADERS += plain.h base64.h
                                SOURCES += main.cpp base64.c
                                @

                                This calls g++ (GCC in C++ mode) on main.cpp and gcc (GCC in C mode) on base64.c. The decision is made on the file extension (.cpp or .c). One can tweak that with setting QMAKE_EXT_CPP. The default is .cpp .cc .cxx .C

                                http://www.catb.org/~esr/faqs/smart-questions.html

                                1 Reply Last reply
                                0
                                • G Offline
                                  G Offline
                                  GordonSchumacher
                                  wrote on last edited by
                                  #20

                                  Actually, there's an even better way:

                                  Top-level .pro file:
                                  @
                                  TEMPLATE = subdirs

                                  someLib.subdir = someLib
                                  someLib.makefile = someLib.mak # This may not be named "Makefile"!
                                  someLib.target = $${QMAKE_PREFIX_SHLIB}someLib.${QMAKE_EXTENSION_SHLIB}

                                  SUBDIRS = someLib someApp
                                  @

                                  someLib/someLib.mak:
                                  @
                                  libsomeLib.so:
                                  gcc foo.c -o libsomeLib.so

                                  clean:
                                  rm -f libsomeLib.so

                                  distclean: clean

                                  .PHONY: clean distclean
                                  @

                                  Note that it will create a bogus, non-functional "someLib/Makefile", but you may simply ignore it.

                                  I don't believe this is documented, but it's been in qmake for quite a long time (I want to say at least since 4.3.x, but don't quote me on that).

                                  1 Reply Last reply
                                  0
                                  • B Offline
                                    B Offline
                                    benardmens
                                    wrote on last edited by
                                    #21

                                    [quote author="GordonSchumacher" date="1291831448"]Actually, there's an even better way:

                                    Top-level .pro file:
                                    @
                                    TEMPLATE = subdirs

                                    someLib.subdir = someLib
                                    someLib.makefile = someLib.mak # This may not be named "Makefile"!
                                    someLib.target = $${QMAKE_PREFIX_SHLIB}someLib.${QMAKE_EXTENSION_SHLIB}

                                    SUBDIRS = someLib someApp
                                    @

                                    someLib/someLib.mak:
                                    @
                                    libsomeLib.so:
                                    gcc foo.c -o libsomeLib.so

                                    clean:
                                    rm -f libsomeLib.so

                                    distclean: clean

                                    .PHONY: clean distclean
                                    @

                                    Note that it will create a bogus, non-functional "someLib/Makefile", but you may simply ignore it.

                                    I don't believe this is documented, but it's been in qmake for quite a long time (I want to say at least since 4.3.x, but don't quote me on that).[/quote]

                                    [quote author="Volker" date="1291641995"]Not quite true.

                                    @
                                    HEADERS += plain.h base64.h
                                    SOURCES += main.cpp base64.c
                                    @

                                    This calls g++ (GCC in C++ mode) on main.cpp and gcc (GCC in C mode) on base64.c. The decision is made on the file extension (.cpp or .c). One can tweak that with setting QMAKE_EXT_CPP. The default is .cpp .cc .cxx .C[/quote]

                                    Thanks for all the suggestions, I was unable to go back to the project because of work but I will try the suggestions right away and get back to you.

                                    Thanks everyone!

                                    1 Reply Last reply
                                    0
                                    • B Offline
                                      B Offline
                                      benardmens
                                      wrote on last edited by
                                      #22

                                      Hi all,

                                      I've tried the options without success so I've uploaded the project if some one could kindly help me out with where I'm going wrong. The link is below

                                      http://www.wikiupload.com/3XHWP6JG2GXMU1D

                                      Thanks again everyone for the help so far

                                      1 Reply Last reply
                                      0
                                      • G Offline
                                        G Offline
                                        GordonSchumacher
                                        wrote on last edited by
                                        #23

                                        Is that really all of libhaggle? There is no Makefile in that directory, but there is Makefile.in/.ac, which would certainly suggest that it's an Autotools project... but there is no Autoconf.in/.ac, so I can't run automake at all (or at least, mine complains about the lack of those files).

                                        1 Reply Last reply
                                        0
                                        • B Offline
                                          B Offline
                                          benardmens
                                          wrote on last edited by
                                          #24

                                          [quote author="GordonSchumacher" date="1292083276"]Is that really all of libhaggle? There is no Makefile in that directory, but there is Makefile.in/.ac, which would certainly suggest that it's an Autotools project... but there is no Autoconf.in/.ac, so I can't run automake at all (or at least, mine complains about the lack of those files).[/quote]

                                          Hi Gordon, thanks for the quick reply, I actually didn't include them because in my naivety i though they weren't needed. Please find the full haggle folder included. By the way this is being compiled for Maemo (N900). Don't know if that helps. The links are below. They are both the same thing just uploaded to different places for convenience.

                                          http://www.wikiupload.com/QIPLU200EX9PHGS
                                          http://rapidshare.com/files/436368610/Policy.zip

                                          Thanks again every one, really appreciate the help

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved