How to run a C++ code in Qt?
-
No, include them in your O_PS* files where suited.
-
@Rela
It must have taken you ages to delete those names ... Anyway, to useostream
,istream
and other streams from the standard C++ library, you actually need to include the corresponding headers -stdio.h
simply won't cut it. You need (depending on which classes you use) one of the *stream headers, e.g.#include <iostream>
,#include <fstream>
and so on. Additionally, these classes come in thestd
namespace so you'd need to expand that as well, for example.#include <iostream> using namespace std; // Only now the istream and ostream classes are available.
Kind regards.
-
@Rela said:
There are ... in the "main.cpp" already.
But obviously these headers are not present in
mainwindow.h
, whence the compile errors. The compiler doesn't know heck aboutostream
when processing themainwindow.h
and it's whining ...Kind regards.
-
@Rela
I'm sorry but I have no idea what's happening, with the deletions and without a complete code snippet this is just turning into a guessing game. Not to mention the preprocessor directives, whose expansions I have no way of deducing. The errors have obviously changed and they are at compile-time, so focus on that and try to resolve the type mismatches. -
@kshegunov
The problem is not related to the code. The C++ code works properly in MV and also it worked in Qt creator before and gave the results in "Application Outputs" with Qt5.5 and MV 2013. The problem happened, when I start working with MV 2015 and Qt5.6 beta.
I just did the previous way and added all C++ files to the Qt project files. Do you have any idea about the ```error: dependent '..\C++' does not exist.
-
@Rela
I have never seen that error, but if I had to guess probably a folder can't be found byqmake
. Inspect your project file, and make sure all folders/files exist. Then rerunqmake
and then do a full rebuild. Additionally, don't use backslashes for your paths when working withqmake
, use *nix-style paths, for example:C:/somefolder/somefile.cpp
-
Do you have something containing "C++" anywhere in your .pro file ?
-
@SGaist
Yes, I had something like this in PS8, because I added the C++ project header and source files through the "../C++ projects/po... /" path. But, now I removed the space of "C++ projects" (because maybe it makes problem), and changed the path withoutspace. PS10 Qt project .pro file is this
Now the error is this -
What is char.h?
-
@jsulm
It was#include <tchar.h>
in the C++ code, but it had given the errors like
'void PS... (char *)': cannot convert argument 1 from 'const char [37]' to 'char *'
and I changed it to "char".
I think its related to the main function in "main.cpp"int main(int argc, char* argv[]) {
-
How is it related to main?
char is a native data type in C and C++, you do not have to include any header file to use it. So just remove this include.
This error:'void PS... (char *)': cannot convert argument 1 from 'const char [37]' to 'char *'
You got probably because you're passing a const char string as parameter to a function which expects a non const char string:
void PS... (char *param); then you call PS...("a string");
Do it like this:
char *param = "a string"; PS...(param);
-
'void PS... (char *)': cannot convert argument 1 from 'const char [37]' to 'char *'
The error is because you're passing
const char * const
to a function expectingchar *
and the compiler doesn't know how to (safely) convert the argument. My advice is: rework your function to accept non-mutable arguments if possible, if not - fix the type mismatch. @jsulm already pointed out that you shouldn't include headers you're not going to need, unless massive compilation times is something you're after.Kind regards.
-
Hi, the previous error was solved. I wanted to have a C++ code results in widget. For reminding in brief, I created a Qt widget project, and I added the C++ code including header and source files to the project. I copied the main.cpp C++ codes in the Qt main.cpp file.
The error was ```
void PS... (char *)': cannot convert argument 1 from 'const char [37]' to 'char *
I changed the definition of the function:
void PS... (char *_sth)
to
void PS... (const char *_sth)
and it doesn't give the error. But, now I want to have some values as result in Application Output , but instead of the non-zero values, they are all zero.
The input data are read from a model.txt file. The path of the text file was also added in the "project" > run of "Desktop Qt 5.6 MSVC2015 64 bit" > "Arguments". Do you know if it is related to the reading input data or not? -
How do you read model.txt file?
Is this file found?
Do you have any errors while reading it?
Why don't just debug and see what happens? -
@jsulm
In the code, it read using ```bool ReadModelData(istream &in, functionname &_PS) ... ... ReadModelData (fin,s) ...
The path of the text file was added in the "project" > run of "Desktop Qt 5.6 MSVC2015 64 bit" > "Arguments". File path
When I debug it just show in the Application output:Debugging starts Debugging has finished
and when run the code the results are cpu=0 z=0 ... while they should be some non-zero.