I have Qt 5.8 installed and i get this error.
I also have CONFIG += c++14 in my pro file and i also tried with c++11.
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:106: error: ‘is_same’ is not a member of ‘QtPrivate’!QtPrivate::is_same<const
also
/usr/include/c++/5/type_traits:958: note: ‘std::is_same’
struct is_same;
I've been doing some digging in the Qt git repository, based on the comment to the question by #DanielJour.
Looking to the history of file qtimer.h and correlating it to your error message (qtimer.h:106: error: ‘is_same’ is not a member...), I've found that this commit moved the call to is_same from line 106 to 112 (and never came back), so you are including a qtimer.h from before that commit.
That commit is from 2016-01-15 and it is included from Qt 5.7 onwards.
So my guess is that you have installed several different versions of Qt and somehow your program is including old headers, not the ones from Qt 5.8.
An additional note that leads me to that conclusion is that your header file is in /usr/include/x86_64-linux-gnu/qt5/, but the usual place where that is installed is in /usr/include/qt or /usr/include/qt5. Yours looks like a multilib or cross compiler path...
I have created a C++ project in Xcode 8.2.1 with a Bridging Header file.
I have added a Point3.hpp and Point3.cpp file into a shared folder.
The types for the cpp and cpp files (in the identity and type inspector) are Default - C++ Source and Default - C++ Header respectively.
The LLVM 8.0 Language settings are:
C++11 [-std=c++11]
libc++ (LLVM C++ standard library with with C++11 support)
When I try to build the project, I find that I get the following error:
I have tried searching to find information to resolve this issue, but most seem to be related to compiling source that is a combination of objective-C and C++ whereas this project was setup as a Swift3 project with C++ bridge. Source code
ex3-Bridging-Header.h
#import "../../../Shared/ex3/math/Point3.cpp"
Point3.cpp
#include "Point3.hpp"
using namespace EX3;
Point3::Point3()
{
} ...
Point3.hpp
#ifndef EX3_POINT3_HPP
#define EX3_POINT3_HPP
namespace EX3
{
class Point3
{
public:
Point3(); ...
compiler settings
After continuing looking, I finally managed to find a working solution. There may be other ways to achieve this but I fixed it by routing the C++ through an Objective C layer. Whilst this seems a little bit clumsy (as it adds an extra bridge layer), as of Swift3, it is reported that there is no direct interop layer to C++.
We're trying to port our program to Qt 5.4 -opengl dynamic implementation.
Before Qt 5.4, we used separate Desktop OpenGL/DX9-ANGLE builds and ifdefs like this:
#ifdef USE_GLES
binf = new QOpenGLExtension_OES_get_program_binary();
binf->initializeOpenGLFunctions();
#else
bingl = new QOpenGLExtension_ARB_get_program_binary();
bingl->initializeOpenGLFunctions();
#endif
USE_GLES is defined in my .pro (qmake) file, based on opengl implementation set on build Qt.
For -opengl dynamic, QOpenGLExtension_OES_get_program_binary extension is not available even if Qt::AA_UseOpenGLES is used, because it hides under #ifdef in QOpenGLExtensions.h
What should we do? Re-implement all ARB/OES extensions in our code (i.e. declare entry points and do function resolve on runtime, depending of available extensions list)? Is this problem already resolved by the Qt team?
I'm trying implement a small program to do blast and obtain result without browsers.
The ncbi c++ toolkit seems like what I'm looking for, however, I met some problem of using it.
My environment is windows with MSVC 2010 c++ compiler and QT framework,
I've download, configure, and build the toolkit according to the following instruction.
http://www.ncbi.nlm.nih.gov/books/NBK7167/
and I have all libs (.*lib files) at the directory below:
ncbi_cxx--12_0_0\compilers\msvc1000_prj\dll\lib\ReleaseDLL
Following is an example provided by ncbi, I'm trying to do similar stuff.
http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/src/sample/app/blast/remote_blast_demo.cpp
After everything seems ready, I create a project (with Qt Creator) and try to use the toolkit.
However, the problem occurs when I include any of the header files, for example
#include <corelib/ncbiapp.hpp>
I have no clue how to solve the compiler error when including ncbi libraries.The error message is as follows:
'ncbi::CUtf8::AsUTF8' redefinition of
default parameter : parameter 2 (ncbistr.hpp line 2861)
'ncbi::CStringUTF8 ncbi::CUtf8::AsUTF8(const ncbi::TCharUCS2*,ncbi::SIZE_TYPE)' : member function already defined or declared (ncbistr.hpp line 2861)
'ncbi::CUtf8::AsUTF8' : missing default parameter for parameter 2 (ncbistr.hpp line 2861)
I spent days on figuring how to use this toolkit, if anyone can give me some idea, I'll really appreciate.
By the way, in the project file I do include path and libs.
INCLUDEPATH += "../../lib/ncbi_cxx--12_0_0/include"
LIBS += "../../lib/ncbi_cxx--12_0_0/compilers/msvc1000_prj/dll/lib/ReleaseDLL/*.lib"
I'm trying to use vtk in my code, but I'm having problems running an example. I have almost no clue about the reasons since it's the first time I'm using it and I'm not very experienced.
I'm using visual studio 2012 and x64 platform.
Since I don't really know which libs should I use I added all of them to the "Additional Dependencies".
The example is given in this link.
The problem is that when I run it, the window shows this message
Generic Warning: In C:\location\VTK6.0.0\Rendering\Core\vtkPolyDataMapper.cxx, line 27
Error: no override found for 'vtkPolyDataMapper'.
which corresponds to this line
// Return NULL if no override is supplied.
vtkAbstractObjectFactoryNewMacro(vtkPolyDataMapper)
And the error that visual studio shows is
First-chance exception at 0x000007F7AA106C8F in Test.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
Does anyone know how to solve this problem or at least what does this error mean?
I too was getting this error. The error means that the linker can't find the definition for the vtkPolyDataMapper method. One has to note which vtk rendering backend they used, during build. It will probably be either vtkRenderingOpenGL, or vtkRenderingOpenGL2. Go to your build/lib folder and search for either one of these. I have VS 2015 Community and had the vtkRenderingOpenGL2, with vtk-7.1 built on Windows 8.1, x86_64 Platform, Release configuration.
I fixed the issue by inserting the 3 following lines at the very top of my source files, before any other preprocessor directives:
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
This initializes the specified VTK modules. CMake includes these by default, but other compilers such as VS do not.
The last two lines can be combined into the following:
#define vtkRenderingCore_AUTOINIT 2(vtkRenderingOpenGL2, vtkInteractionStyle)
According to the VTK migration guide, if you are not using CMake to compile your code, you need to add some #defines. For VTK 6.0, these lines need to go before any other VTK #includes:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
You are missing include(${VTK_USE_FILE}) in your CMakeLists.txt file.
Assuming your are using OpenGL2, you should initialise the vtkRenderingOpenGL2 module, ensuring its object factory is correctly registered:
VTK_MODULE_INIT(vtkRenderingOpenGL2)
You should call this macro in the global scope (ex. main.cpp) as documented in the source code:
Initialize the named module, ensuring its object factory
is correctly registered and unregistered. This call must be made in
global scope in the translation unit of your executable (which can
include a shared library, but will not work as expected in a static
library).
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL);
The above snippet if included in the global scope will ensure the
object factories for vtkRenderingOpenGL are correctly registered and
unregistered.
How do you know which module to include?
The easiest method is to search in the VTK build folder for "vtkClassThatNeedsAnOverride", i.e. "vtkPolyDataMapper" in your case (note the use of quotes ".) and looking for a *ObjectFactory in your search results:
Rendering/OpenGL2/vtkRenderingOpenGL2ObjectFactory.cxx:
this->RegisterOverride("vtkPolyDataMapper",
"vtkOpenGLPolyDataMapper",
"Override for vtkRenderingOpenGL2 module", 1,
vtkObjectFactoryCreatevtkOpenGLPolyDataMapper);
It may be even more beneficial to look for RegisterOverride("vtkPolyDataMapper".
Which object factories exist?
To obtain a list of all existing modules that you could initialise, you can search for _AutoInit_Construct. *_AutoInit_Construct is the method that is called by VTK_MODULE_INIT.
As an alternative, you can look at all classes that derive from vtkObjectFactory.
A second alternative is to look for all calls to RegisterOverride.
Further information
VTK 6 Migration: Factories now require defines
Build System Migration: You do not need to call VTK_MODULE_INIT manually using cmake by calling include(${VTK_USE_FILE}) in your CMakeLists.txt
Note that I originally wrote this answer for a duplicate question, but I think the general information about solving this problem may be of interest for other people with the same error message.
I would recommend following the guide here, with the VTK_MODULE_INIT macro being the most reliable, with the guide here providing a high level overview of the changes needed. You must link to vtkRenderingOpenGL for example to get most of the standard overrides. If you use CMake then specifying it on the COMPONENTS argument to find_package would cause it to be added to VTK_LIBRARIES, and including VTK_USE_FILE would cause the correct compiler definitions to be added.
I had the same issue at my platform;
Visual Studio 2015
Windows 7
VTK 6.3
I followed VTK/Build System Migration from Marcus D. Hanwell's post, and it works. My additonal lines are;
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL);
VTK_MODULE_INIT(vtkInteractionStyle);
on the top of preprocessor. The difference from RestlessC0bra's post is probably OpenGL version.
When using ParaView's Catalyst libraries you have to add the following in addition to include("${PARAVIEW_USE_FILE}"):
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${VTK_DEFINITIONS})
A quick hack solution: In CMakeList.txt file, replace vtkRendering${VTK_RENDERING_BACKEND} with vtkRenderingOpenGL2. The reason why we need this is because Cmake does not know where the rendering core is. By specifying it, we can use the rendering core to override the proper method.
The proper solution should be replace the whole find_package paragraph with:
find_package(VTK REQUIRED COMPONENTS vtkCommonCore)
find_package(VTK COMPONENTS
vtkFiltersSources
vtkInteractionStyle
vtkRendering${VTK_RENDERING_BACKEND})
The first find_package lets the CMake know where to find the packages, then second find_package would know where to find vtkRendering${VTK_RENDERING_BACKEND}.