opencv 3.0 visual studio community 2017 compilation LINK errors - c++

I installed opencv 3.0 in my windows10 64 bit. I created a C++ project in visual studio community 2017 and did all these steps provided in opencv documentation (local method in this link which are:
1- creation of environment variable:
OPENCV_DIR C:\Program Files\opencv\build\x86\vc11
With I added in user and system Path as follow
%OPENCV_DIR%\bin
2- In my project I added in Properties -> C/C++ -> additional include repositories:
C:\Program Files\opencv\build\include
3- Properties -> Link -> General:
$(OPENCV_DIR)\lib
$(OPENCV_DIR)\staticlib
I included staticlib because at first the compiler didn't find opencv_core300d.lib while this one exists in staticlib, so I added it.
checked YES for use library dependency entries
4- Properties -> Link -> Entry:
opencv_core300d.lib
opencv_highgui300d.lib
opencv_imgproc300d.lib
opencv_ml300d.lib
opencv_ts300d.lib
with Herited values:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
I got more 800 errors all related to mismatch between values in .obj files related to opencv_core300d.lib:
1>Source.cpp
1>opencv_core300d.lib(alloc.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(alloc.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(stl.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(stl.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(matrix.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(matrix.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(opencv_core_pch.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
1>opencv_core300d.lib(opencv_core_pch.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in Source.obj
1>opencv_core300d.lib(system.obj) : error LNK2038: discordance détectée pour '_MSC_VER' : la valeur '1700' ne correspond pas à la valeur '1900' in Source.obj
I tried to resolve the issue by checking similar answers to similar errors and according to this answer it's due to different versions of the compiler. If so, how to correct it?
Sample code used to test that opencv works:
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if (argc != 2)
{
cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], IMREAD_COLOR); // Read the file
if (image.empty()) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
I need help!
Thank you.

These error is due to different build version of the opencv library. You can download the pre build binaries for your compiler version if available or else you need to build OpenCV from source using cmake. In your case you require binaries built for vs2017 i.e. _MSC_VER 1900.

Related

i have an error for create a cmakelist with irrlicht [duplicate]

This question already has answers here:
How to add "-l" (ell) compiler flag in CMake
(2 answers)
Closed 3 years ago.
I create a cmakelist.txt for a project graphique. I use the library irrlicht. I have a probleme after i had "cmake .", i do make i have error
cmakelist.txt
cmake_minimum_required(VERSION 3.11)
PROJECT(toto)
INCLUDE_DIRECTORIES(
"/usr/include/irrlicht"
${PROJECT_SOURCE_DIR}/include
)
SET(GCC_COVERAGE_COMPILE_FLAGS "-lIrrlicht -lGL -lGLU -lXxf86vm-lX11")
#SET(GCC_COVERAGE_COMPILE_FLAGS "-lIrrlicht -lGL -lGLU -lXrandr -lXi -lXxf86vm -lGLEW")
SET(GCC_COVERAGE_COMPILE_INCLUDE "-std=c++11 -I ./include")
find_package(glfw3 3.1 REQUIRED)
find_package(OpenGL REQUIRED)
find_package(X11)
add_definitions(${GCC_COVERAGE_COMPILE_FLAGS})
add_definitions(${GCC_COVERAGE_COMPILE_INCLUDE})
if (OPENGL_FOUND)
message("opengl found")
message("include dir: ${OPENGL_INCLUDE_DIR}")
message("link libraries: ${OPENGL_gl_LIBRARY}")
else (OPENGL_FOUND)
message("opengl not found")
endif()
FILE(GLOB SRCS src/*.cpp)
FILE(GLOB HDRS include/*.hpp)
ADD_EXECUTABLE(toto
${SRCS}
${HDRS}
)
TARGET_LINK_LIBRARIES(toto
"/usr/lib/libIrrlicht.a"
)
include_directories(${OPENGL_INCLUDE_DIR})
target_include_directories(toto PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(toto ${OPENGL_gl_LIBRARY} glfw)
target_link_libraries(toto ${OPENGL_glu_LIBRARY})
main.cpp
#include "my.hpp"
int main(int ac, char **av)
{
/* code */
printf("toto\n");
IrrlichtDevice *device =
createDevice( video::EDT_SOFTWARE, dimension2d<u32>(640, 480), 16,
false, false, false, 0);
if (!device)
return 1;
device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",
rect<s32>(10,10,260,22), true);
IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2");
if (!mesh)
{
device->drop();
return 1;
}
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMD2Animation(scene::EMAT_STAND);
node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") );
}
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
while(device->run())
{
driver->beginScene(true, true, SColor(255,100,101,140));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return (0);
}
my.hpp
#ifndef IRRLICHT
#define IRRLICHT
#include <stdio.h>
#include <iostream>
#include <irr/irrlicht.h>
#include <cstdlib>
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif
#endif
I would like to have an executable but have have this error
[ 50%] Building CXX object CMakeFiles/toto.dir/src/main.cpp.o
[100%] Linking CXX executable toto
/usr/bin/ld: /usr/lib/libIrrlicht.a(CIrrDeviceLinux.o): référence au symbole non défini « XConvertSelection »
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO manquant dans la ligne de commande
collect2: error: ld returned 1 exit status
CMakeFiles/toto.dir/build.make:86 : la recette pour la cible « toto » a échouée
make[2]: *** [toto] Erreur 1
CMakeFiles/Makefile2:67 : la recette pour la cible « CMakeFiles/toto.dir/all » a échouée
make[1]: *** [CMakeFiles/toto.dir/all] Erreur 2
Makefile:83 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
Your compiler says that you are missing a symbol XConvertSelection. I believe the compiler already gave you an answer:
/usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO manquant dans la ligne de commande
Searching for the error message, a very similar question has already been asked. Adding X11 to your list of libraries in CMakeLists.txt should fix your issue:
target_link_libraries(toto ${X11_LIBRARIES})

Compilation error due to table in C++

I'm trying to create a chat programm for the TI-Nspire Calc via the serial port. So I installed the ndless SDK and nspireio lib to make the communication and it kind of works because there is an infite repetition of the message so I wrote this:
if(uart_ready()) {
char input[100] = {0};
uart_getsn(input,100);
if(oldinput != input) {
nio_puts(input);
oldinput = input;
}
}
But when I compile it give me this error:
root#Kali-Linux:~/TINSPIRE/Ndless/ndless-sdk/samples/uart# make
nspire-g++ -Wall -W -marm -Os -c hello.cpp
hello.cpp: Dans la fonction « int main() »:
hello.cpp:61:14: error: affectation de tableau invalide
oldinput = input;
^~~~~
Makefile:33 : la recette pour la cible « hello.o » a échouée
make: *** [hello.o] Erreur 1
What I'm doing wrong?
If oldinput is also a char array,
replace oldinput=input with
strcpy(oldinput,input);
You should declare oldinput:
char oldinput[100] = {0};
memcpy(oldinput, input, sizeof(char) * 100);

using Aquila in Visual Studio 2012

First i make Aquila by Cmake
and then open the Aquila.sln file that generated by Cmake
and then from build menu and batch build check the
Aquila Debug Win32 Debug|Win32
Aquila Release Win32 Release|Win32
and generate Aquila.lib
and added this library and .h files in my solution for running the example but I have this error:
Error 1 error LNK2019: unresolved external symbol _cdft referenced in
function "public: virtual class std::vector,class std::allocator >
__thiscall Aquila::OouraFft::fft(double const * const)" (?fft#OouraFft#Aquila##UAE?AV?$vector#V?$complex#N#std##V?$allocator#V?$complex#N#std###2##std##QBN#Z) C:...\aquila\Aquila.lib(OouraFft.obj)
Then i change Runtime Library from Multi threaded debuge DLL (/MDd) to
Multi threaded debuge (/MTd)
but have this error: Error 1 error LNK2038: mismatch detected for
'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value
'MTd_StaticDebug' in
aquila.obj C:...\aquila\Aquila.lib(SignalSource.obj)
Aquila example
#include "aquila/aquila.h"
#include "stdafx.h"
int main()
{
// input signal parameters
const std::size_t SIZE = 64;
const Aquila::FrequencyType sampleFreq = 2000, f1 = 125, f2 = 700;
Aquila::SineGenerator sine1(sampleFreq);
sine1.setAmplitude(32).setFrequency(f1).generate(SIZE);
Aquila::SineGenerator sine2(sampleFreq);
sine2.setAmplitude(8).setFrequency(f2).setPhase(0.75).generate(SIZE);
auto sum = sine1 + sine2;
Aquila::TextPlot plot("Input signal");
plot.plot(sum);
// calculate the FFT
auto fft = Aquila::FftFactory::getFft(SIZE);
Aquila::SpectrumType spectrum = fft->fft(sum.toArray());
plot.setTitle("Spectrum");
plot.plotSpectrum(spectrum);
return 0;
}
Is there any one cane help me????
If you use aquila 3.0, after building aquila with cmake, Ooura_fft.lib must be in aquila-build/lib/Debug/Ooura_fft.lib. You have to link it to your project.

How to select following siblings before the particular following sibling

I worked on this. but, still, i am having some problem to achieve this. Here is my input
[code]
<contenu1>
<intertitre niveau="1">1 Construire sans permis : infraction intentionnelle ou purement « matérielle » ?</intertitre>
<p>Le nouveau code pénal stipule qu’il.<br/></p>
<p>Le nouveau code pénal stipule qu’il.<br/></p>
<p>Le nouveau code pénal stipule qu’il.<br/></p>
<intertitre niveau="1">2 Quelles sont les principales infractions d’urbanisme ?</intertitre>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<intertitre niveau="1">3 Comment est établie la constatation des infractions ?</intertitre>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code de.<br/></p>
<intertitre niveau="1">4 Quelles mesures urgentes les autorités peuvent-elles actionner avant la saisine du juge ?</intertitre>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code.<br/></p>
</contenu1>
[/code]
And, My expected output is
[code]
<d1commdo>
<tit><al>1 Construire sans permis : infraction intentionnelle ou purement « matérielle » ?</al></tit>
<p>Le nouveau code pénal stipule qu’il.<br/></p>
<p>Le nouveau code pénal stipule qu’il.<br/></p>
<p>Le nouveau code pénal stipule qu’il.<br/></p></d1commdo>
<d1commdo>
<tit><al>2 Quelles sont les principales infractions d’urbanisme ?</al></tit>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/></p>
</d1commdo>
<d1commdo>
<tit><al>3 Comment est établie la constatation des infractions ?</al></tit>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code de.<br/></p></d1commdo>
<d1commdo>
<tit><al>4 Quelles mesures urgentes les autorités peuvent-elles actionner avant la saisine du juge ?</al></tit>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code.<br/></p>
</d1commdo>
[/code]
Could someone please help me to achieve this on XSLT? I need the xslt piece of code.
This XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="no" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="#*|node()">
<xsl:copy>
<xsl:apply-templates select="#*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<t>
<xsl:apply-templates select="intertitre"/>
</t>
</xsl:template>
<xsl:template match="intertitre">
<d1commdo>
<tit>
<a1>
<xsl:apply-templates/>
</a1>
</tit>
<xsl:apply-templates select="following-sibling::p[1]"/>
</d1commdo>
</xsl:template>
</xsl:stylesheet>
...,when applied to your source XML, produces the expected output (wrapped in a top-level element to be well-formed):
<?xml version="1.0" encoding="UTF-8"?>
<t>
<d1commdo>
<tit>
<al>1 Construire sans permis : infraction intentionnelle ou purement « matérielle » ?</al>
</tit>
<p>Le nouveau code pénal stipule qu’il.<br/>
</p>
</d1commdo>
<d1commdo>
<tit>
<al>2 Quelles sont les principales infractions d’urbanisme ?</al>
</tit>
<p>La plupart des infractions urbanistiques sont des délits. Pour les délits les plus graves, des peines de dix ans d’emprisonnement peuvent être prononcées.<br/>
</p>
</d1commdo>
<d1commdo>
<tit>
<al>3 Comment est établie la constatation des infractions ?</al>
</tit>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code de.<br/>
</p>
</d1commdo>
<d1commdo>
<tit>
<al>4 Quelles mesures urgentes les autorités peuvent-elles actionner avant la saisine du juge ?</al>
</tit>
<p>La constatation des infractions aux règles d’urbanisme, figurant sous le livre IV du code.<br/>
</p>
</d1commdo>
</t>
ok, for your new requirements the solution is not trivial but here you have it
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="no" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="#*|node()">
<xsl:copy>
<xsl:apply-templates select="#*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<t>
<xsl:apply-templates select="intertitre"/>
</t>
</xsl:template>
<xsl:template match="intertitre">
<xsl:variable name="nextIntertitrePosition"
select="count(following-sibling::intertitre[1]/preceding-sibling::*)"/>
<d1commdo">
<tit>
<a1>
<xsl:apply-templates/>
</a1>
</tit>
<xsl:apply-templates select="following-sibling::p[
count(preceding-sibling::*) < $nextIntertitrePosition
or 0 = $nextIntertitrePosition]"/>
</d1commdo>
</xsl:template>
</xsl:stylesheet>
Edit: some formating done and some minor mistakes removed

Error opening ports in C++ to Arduino in Ubuntu

I am programming in ARduino and I am try to connect Arduino with C++. I have the folowing function:
//Prueba.cpp
#include <iostream>
#include <SerialStream.h>
#include "/usr/local/lib/libserial.so.0.0.0"
using namespace std;
using namespace LibSerial;
int main() {
SerialStream my_serial_stream;
my_serial_stream.Open("/dev/ttyACM0");
my_serial_stream.SetBaudRate(SerialStreamBuf::BAUD_9600);
my_serial_stream << "a0" << endl;
return 0;
}
But when I exeute it, give me a lot of error with like this.
usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\377’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\17’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\37’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\200’ parásito en el programa
In file included from Prueba.cpp:11:0:
/usr/local/lib/libserial.so.0.0.0:99:914: aviso: caracter(es) nulo(s) ignorados [activado por defecto]
In file included from Prueba.cpp:11:0:
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\205’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\355’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\17’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\204’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\351’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\376’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\377’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\377’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\277’ parásito en el programa
/usr/local/lib/libserial.so.0.0.0:99:1: error: ‘\20’ parásito en el programa
Anyone know hay this happend? I installed libserial with sudo apt-get install libserdial-dev but nothing.
I suppose that this might help you in general: this