问题描述
我无法在我已经创建的项目中运行 POCO。我用示例 Websocket 做了一个新项目,试图将它配置为成功构建 => 应用程序能够启动和工作。但是当我尝试使用 OpenCV 在我的另一个项目中实施相同的步骤时,我遇到了很多错误。
我用于构建两个项目的代码:
#define POCO_STATIC
#include "pocoWebSocket.h"
#include <iostream>
#include <string>
using namespace std;
int main(int argc,char** argv)
{
std::cout << std::endl<< "I am alive!" << std::endl;
WebSocketServer app;
std::cout << "app run" << std::endl;
return app.run(argc,argv);
//visit http://localhost:9980
}
项目设置为:
- C/C++/代码生成/运行时库:/MT
- C/C++ / General / Additional Include Directories: C:\src\POCO\Foundation\include;C:\src\POCO\Net\include;C:\src\POCO\Util\include;%(AdditionalIncludeDirectories)
在链接器中:
- 一般/附加库目录: C:\src\POCO\buildMT\lib\Debug;C:\src\POCO\buildMT\lib\Release;%(AdditionalLibraryDirectories)
- 输入/附加依赖项: crypt32.lib ws2_32.lib iphlpapi.lib PocoNetmt.lib PocoFoundationmt.lib
当我用 OpenCV 对项目做同样的事情时,我会得到这些错误:有什么建议吗?
Build started...
1>------ Build started: Project: StitchingApp,Configuration: Debug x64 ------
1>main.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,3): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(192,9): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(193,9): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1102,13): error C3646: 'szlDevice': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1102,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1103,13): error C3646: 'szlMillimeters': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1103,27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,16): error C2143: Syntax error: missing ')' before 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,16): error C2143: Syntax error: missing ';' before 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,16): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7718,36): error C2059: Syntax error: ')'
1>trStitcher.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,36): error C2059: Syntax error: ')'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(873,13): error C3646: 'Size': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(873,17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(879,13): error C3646: 'Size': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(879,17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(902,25): error C3646: 'Size': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(902,29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(914,25): error C3646: 'Size': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(914,29): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(1262,34): error C2061: Syntax error: identifier 'SIZEL'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(1266,36): error C2061: Syntax error: identifier 'SIZEL'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(1524,11): error C3646: 'sizel': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(1524,16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(2668,24): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\oleidl.h(3207,36): error C2061: Syntax error: identifier 'LPSIZEL'
1>trStitcher_calculation.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1113,13): error C3646: 'szlMicrometers': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(1113,27): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(4009,67): error C2061: Syntax error: identifier 'LPSIZE'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5143,98): error C2061: Syntax error: identifier 'LPSIZE'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5612,13): error C3646: 'szlExtent': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5612,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,36): error C2061: Syntax error: identifier 'LPSIZEL'
1>trStitcher_core.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,67): error C2061: Syntax error: identifier 'LPSIZE'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(4033,71): error C2061: Syntax error: identifier 'LPSIZE'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5143,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5666,13): error C3646: 'szlCorner': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5666,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5777,13): error C3646: 'szlstroke': unkNown override specifier
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\wingdi.h(5777,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4547,14): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4562,11): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4562,11): error C2059: Syntax error: 'constant'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4562,22): error C2238: unexpected token(s) preceding ';'
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(7715,36): error C2061: Syntax error: identifier 'LPSIZEL'
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_core.cpp(15,29): warning C4267: '=': conversion from 'size_t' to 'int',possible loss of data
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_core.cpp(281,102): warning C4244: 'argument': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=int
1> ]
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_core.cpp(281,70): warning C4244: 'argument': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=int
1> ]
1>trStitcher_IO_processing.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winuser.h(4562,17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winspool.h(914,36): error C2061: Syntax error: identifier 'LPSIZEL'
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_IO_processing.cpp(15,34): warning C4244: '=': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=float
1> ]
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_IO_processing.cpp(21,30): warning C4244: '=': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=float
1> ]
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_IO_processing.cpp(33,62): warning C4244: 'argument': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=int
1> ]
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_IO_processing.cpp(33,36): warning C4244: 'argument': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=int
1> ]
1>E:\JOB\StitchingProject\StitchingApp\src\trStitcher_IO_processing.cpp(201,116): warning C4244: 'argument': conversion from 'double' to '_Tp',77): warning C4244: 'argument': conversion from 'double' to '_Tp',possible loss of data
1> with
1> [
1> _Tp=int
1> ]
1>Generating Code...
1>Done building project "StitchingApp.vcxproj" -- Failed.
========== Build: 0 succeeded,1 Failed,0 up-to-date,0 skipped ==========
解决方法
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\windef.h(190,3):
186: typedef struct tagSIZE
187: {
188: LONG cx;
189: LONG cy;
190: } SIZE,*PSIZE,*LPSIZE;
^ ^
1 3
在您的代码或使用的库中的某处,定义了冲突的宏 SIZE。
,有人给了我很大的耳光...当我教我的朋友如何编码时,我不小心定义了 SIZE 和其他东西,并意外地将它保存到我的解决方案中....我还不得不评论一些更多的东西来制作它起作用了。
感谢你们给我的小推动,谢谢。
这是我必须编辑的文件,评论的文件没有评论,config.h:
#pragma once
#ifndef STITCHING_CONFIG
#define STITCHING_CONFIG
#include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
//static const uint32_t SupportedWidth[] = { 320,480,640,800,960,1120,1600,1920,2048,2592,3264,3840,4224 };
//static const uint32_t SupportedHeight[] = { 240,360,600,720,840,1200,1080,1536,1944,2448,2160,3156 };
//#define PORT 8004
//#define FPS 1.0
//#define SIZE 7
#define INPUTRESIZE 0.5
#define OUTPUTRESIZE 1.0
#define NUMBEROFIMAGES 3
#define DEBUGID 0
#define DEBUGON false
#define DEBUGTIMESON false
#define DEBUGSTITCHINGINFO true
#define SLOWDEBUGON false
#define RUNVAL 0
#if RUNVAL == 0
#define DEBUGMODESTITCHINGAPP
#elif RUNVAL == 1
#define TESTING
#elif RUNVAL == 2
#define RUNCALIBRATION
#else
#define RUNSTITCHINGAPP
#endif
#endif