Articles of mingw32

如何在C ++的单独posix线程中运行OpenCV Videocapture来跨平台?

在我的代码中,我想不断地在一个单独的pthread运行一个videoVideocapture ,而主线程将作为一个socket server与任何客户端进行通信(反之亦然)。 当client连接到server , server会立即将最新的Videocapture帧发送到客户端并closures连接,并再次等待另一个连接。 我目前在mingw32环境下使用OpenCV 2.3.0 。 在StackOverflow上寻找一些可能的解决scheme后,我试着跟着他们,但是,我可以放置OpenCV variables locally或globally或swapping the threads即保持Videocapture线程在main thread或in the 2nd thread ,程序只是静静地挂在当客户端连接时, VideoCapture线程的mutex locked area 。 我想这是在server线程连接到客户端后开始lockingmutex发生的。 任何推理或可能的解决scheme将不胜感激。 另外,我正在使用预编译的 OpenCV版本2.3.0,我需要的代码是跨平台的。 无论如何,如果它指向一个bug,我显然可以切换到其他版本。 服务器代码 mynet.h #ifndef __MYNET__ #define __MYNET__ #ifdef _WIN32 #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0501 /* Windows XP. */ #endif #include <winsock2.h> #include <Ws2tcpip.h> #else /* Assume that any […]

Mingw32 @function的汇编错误

我使用mingw32将一个项目移植到Windows,而该项目依赖于一个名为libfec的库。 Libfec有很多汇编代码来优化内部工作。 在Linux(与GCC 5.4)库编译罚款。 今天我试图在windows上使用mingw32(以及gcc 5.4)编译它,我得到这个错误: as -o mmxbfly27.o mmxbfly27.s mmxbfly27.s: Assembler messages: mmxbfly27.s:10: Warning: .type pseudo-op used outside of .def/.endef ignored. mmxbfly27.s:10: Error: junk at end of line, first unrecognized character is `u' make: *** [mmxbfly27.o] Error 1 关于.type的警告也发生在Linux上,但错误不会。 我检查了binutils,他们实际上是不同的(在Linux上是2.26,在mingw是2.25),但是libfec的代码有点旧了(几年),甚至binutils 2.0也可以编译。 我不知道为什么我不能在Windows上编译这个。 完整的代码在这里: https://github.com/quiet/libfec/blob/master/mmxbfly27.s 我问过一个有编译器经验的朋友,他在代码中找不到问题(并且在linux中编译得很好)。

如何在Ubuntu上安装mingw32?

我想在我的Ubuntu(16.10)上安装mingw32 cuz我想生成我的应用程序的x86 windows版本。 我的Makefile(CMake)需要“i586-mingw32msvc-g ++”可执行文件。 我试过“sudo安装mingw32”,但它不起作用(我有一个“未find包”错误)。

在Linux中读取不同的文件? C ++

我是一个相当新的程序员,但我认为我的google-fu很有能力,我花了几个小时search。 我有一个简单的SDL应用程序,它从二进制文件中读取(2个字节作为幻数,然后每个“tile”有5个字节),然后在缓冲区中显示每个tile,字节决定x,y,id,passability等等。 所以这只是水平加载。 它可以在任何Windows电脑(经过testing的Windows Server 2008,7 / 64和7/32)上运行良好,但是当我在linux上编译它时,它随机显示随机位置。 我试图说它是从RAM中的错误部分读取的,但是我给了这个幻数,所以如果前两个字节出来,它会返回一个错误。 我很想自己弄清楚这一点,但现在让我感到困惑,除非我可以在移动中编程(我的笔记本电脑运行linux),否则我无法进一步进步。 我在linux上使用G ++,在windows上使用mingw32g ++。 bool loadlevel(int level_number) { int length; std::string filename; filename = "Levels/level"; filename += level_number+48; filename += ".lvl"; std::ifstream level; level.open(filename.c_str(),std::ios::in|std::ios::binary); level.seekg(0,std::ios::end); length = level.tellg(); level.seekg(0,std::ios::beg); char buffer[length]; level.read(buffer,length); if (buffer[0] == 0x49 && buffer[1] == 0x14) { char tile_buffer[BYTES_PER_TILE]; int buffer_place = […]

MinGW海湾合作委员会C编译器的作品,但G + +没有

我是小白,我承认这一点。 无论如何,我在MinGW上遇到了一个非常恼人的问题….我可以用C语言编写和编译程序,但是最近我尝试安装Cmake,但是我不能,因为它每次都会失败testingC ++编译器(g ++)。 所以,这导致我只用C ++编写一个简单的“hello world”程序,然后尝试编译它。 没有骰子。 一次又一次,我没有得到任何回应。 在命令行上,我正在input g++ -o hello++.cpp hello++ 但也尝试过 g++ -o hello++.cxx hello++ g++ -o hello++.cc hello++ g++ -o hello++ hello++.cpp (当然,我将源代码的副本分别保存在同一个目录中,分别使用.cxx和.cc扩展名) 和一堆其他的组合。 每次我什么也得不到。 没有警告。 没有错误。 没有。 目录中没有创build.exe文件,然后在命令行上input“hello ++”,只是给了我一个“找不到命令”的错误。 Soooo ….到底是怎么回事? 为什么gcc命令工作,但g ++不是? 我在Windows 8上,使用cygwin。

如何在C中用ASCII创build一个下拉菜单?

作为一些DOS应用程序,如何在C中用ASCII显示下拉菜单? (并可以通过箭头键进行控制) 喜欢这个: +——————– +——————– | File | Edit | Help … | File | Edit | Help … +———-+——— +——+———-+– | New (N) | | Cut (X) | | Open (O) | AND | Copy (C) | | Save (S) | | Undo (U) | +———-+ +———-+ 我可以使用哪个图书馆?

MingW32 6.3.0:gnatmake无法findsystem.ads

这就像一个古老的g bug错误,但它似乎已经resurfaced在我的系统上似乎没有任何方法:( 任何input将不胜感激。

在Windows上编译静态Qt编译时未定义的引用

我想在Windows平台上编译静态版本的Qt工具包(Windows XP SP3)。 我下载了Windows的最新版本并成功安装了它。 然后我从“开始”菜单打开Qt 4.6.3命令提示符并调用: configure -static -release -nomake examples -nomake demos -fast configuration执行得很好,而且mingw32-make的第一部分也是mingw32-make 。 在某些时候,我得到了很多未定义的引用: mingw32-make [4]:进入目录`C:/Qt-static/4.6.3/src/tools/moc' 克++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_MOC -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_TEXTCODEC -DQT_NO_CAST_FROM_AS CII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTST REAM -DQT_NO_THREAD – DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NODLL -I“。” -一世”。” -I“…… \ include”-I“…… \ […]

从PHP执行程序挂起APACHE

你好,并提前感谢您的兴趣。 在过去的两个星期里,我一直在苦苦挣扎, 我在Windows上安装了APACHE(2.2.22)和PHP(5.4.3),我试图从一个PHP脚本中调用另一个程序的程序。 这两个程序都用C / C ++编写,并用MINGW32编译。 对于Windows版本,我testing了Windows 2003 Server和Windows 7 Professional,两者都给我提出了相同的问题。 让我介绍这两个scheme: 1)mytask.exe:这是一个程序,将在后台执行,并周期性地将其状态填充到一个文件。 2)job.exe:这是我想从PHP脚本调用的程序。 它的目标是产生mytask.exe作为一个独立的进程(而不是一个线程)。 如果我从控制台窗口运行下面的命令,那么job.exe会立即返回,并使mytask.exe在后台运行,直到它终止。 > job.exe spawn mytask.exe jobid=18874111458879FED 请注意,job.exe会转储用于pipe理mytask.exe的标识符。 例如: > job.exe status 18874111458879FED RUNNING 我已经检查过,如果我从PHP脚本运行第一个命令,PHP脚本会永远随机阻止。 如果我查看Windows的任务pipe理器,我可以看到job.exe处于僵尸状态。 我可以断言job.exe有效地达到了平常的return 0; 声明在main()例程中,所以它似乎是在C运行时的木头之下的东西。 此外,如果我写一个简单的睡眠10秒的简单mytask.exe,那么PHP脚本也会阻塞10秒(或者在我刚刚提到的随机行为之后永远阻塞)。 换句话说,当我从PHP脚本调用job.exe时,我无法让job.exe产生一个进程而不用等待它结束。 所以:当产生mytask.exe的时候,我做错了什么,现在,这里是第二部分。 我使用WINAPI函数CreateProcess()从job.exe产生任务。 在MSDN文档中,我使用bInheritHandles = FALSE调用CreateProcess,以避免subprocess使用PHP脚本产生I / O死锁。 我也closures了PROCESS_INFORMATION结构中由CreateProcess()返回的进程句柄。 我唯一不做的就是等待这个过程结束。 另一方面,关于PHP方面,我已经尝试了exec()和proc_open() PHP函数来调用job.exe没有成功。 但是,我最后的观察似乎是正确的,但是他们没有说服我,因为我不明白他们为什么要工作。 事实是,如果mytask.exe在睡眠之前做了fclose(stdout) ,那么PHP脚本立即返回。 但是,如何? 我告诉CreateProcess()不能inheritance句柄,为什么我会得到这些结果呢? 无论如何,我不能坚持这个补丁,因为job.exe启动的程序可能不知道谁在调用它们,所以从这些程序closuresstdout不是一个好的解决scheme。 在UNIX中,事情非常简单…只需调用fork() ,closures标准stream,然后调用execve来调用程序。 […]

为什么WinBase.h由Mingw32提供不包括用于Windows 7的“SetProcessDEPPolicy”?

我发现只有_WIN32_WINNT >= 0x601才包含SetProcessDEPPolicy (在WinBase.h )的函数定义。 为什么MingW32为Windows 7设置_WIN32_WINNT = 0x400来排除定义? 我检查了Windows 7的kernel32.dll ),它包含了SetProcessDEPPolicy函数。