Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSYS2上的CMake冻结_C++_Windows_Cmake_Msys - Fatal编程技术网

C++ MSYS2上的CMake冻结

C++ MSYS2上的CMake冻结,c++,windows,cmake,msys,C++,Windows,Cmake,Msys,我在Windows 8上运行MSYS2,在CMake冻结/锁定方面遇到问题 下面是一个简单的例子: main.cpp: #include <iostream> int main() { std::cout << "Hello World!" << std::endl; return 0; } 如果我打开MSYS2控制台,转到上面两个文件所在的目录,并执行命令 cmake . strace cmake . 没有进一步的输出,控制台锁定。创

我在Windows 8上运行MSYS2,在CMake冻结/锁定方面遇到问题

下面是一个简单的例子:

main.cpp

#include <iostream>
int main()
{   
   std::cout << "Hello World!" << std::endl;
   return 0;
}
如果我打开MSYS2控制台,转到上面两个文件所在的目录,并执行命令

cmake .
strace cmake .
没有进一步的输出,控制台锁定。创建了一个空的cmakfiles文件夹,但没有其他操作。我试过使用CMake 3.10.2和3.2.3,两个版本的情况都是一样的


下面是一些
strace
输出,如果有兴趣的话: 如果我运行命令

cmake .
strace cmake .
我在不同的时间得到不同的输出。有时最后一行是这样的

19   4436   [main] cmake 2320 child_copy: done
44   239509 [main] cmake 9820 open_shared: name cygpid.10668 n 10668, shared 0xBB0000 (wanted 0x0), h 0x344, *m 6
   20 2735480 [main] cmake 14200 kill_pgrp: killing pid 5900, pgrp 5900, p->ctty /dev/pty0, ctty /dev/pty5
   24 2735504 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x358, PIPE_NOWAIT, NULL, NULL)
   16 2735520 [main] cmake 14200 sig_send: sendsig 0x358, pid 5900, signal 17, its_me 0
   19 2735539 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   24 2735563 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   23 2735586 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 5900, process_state 0x4C5
   20 2735606 [main] cmake 14200 kill_pgrp: killing pid 15152, pgrp 15152, p->ctty /dev/pty5, ctty /dev/pty5
 3486 2739092 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x3A0, PIPE_NOWAIT, NULL, NULL)
   44 2739136 [main] cmake 14200 sig_send: sendsig 0x3A0, pid 15152, signal 17, its_me 0
   33 2739169 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   27 2739196 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   25 2739221 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 15152, process_state 0x61
有时候是这样的

19   4436   [main] cmake 2320 child_copy: done
44   239509 [main] cmake 9820 open_shared: name cygpid.10668 n 10668, shared 0xBB0000 (wanted 0x0), h 0x344, *m 6
   20 2735480 [main] cmake 14200 kill_pgrp: killing pid 5900, pgrp 5900, p->ctty /dev/pty0, ctty /dev/pty5
   24 2735504 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x358, PIPE_NOWAIT, NULL, NULL)
   16 2735520 [main] cmake 14200 sig_send: sendsig 0x358, pid 5900, signal 17, its_me 0
   19 2735539 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   24 2735563 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   23 2735586 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 5900, process_state 0x4C5
   20 2735606 [main] cmake 14200 kill_pgrp: killing pid 15152, pgrp 15152, p->ctty /dev/pty5, ctty /dev/pty5
 3486 2739092 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x3A0, PIPE_NOWAIT, NULL, NULL)
   44 2739136 [main] cmake 14200 sig_send: sendsig 0x3A0, pid 15152, signal 17, its_me 0
   33 2739169 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   27 2739196 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   25 2739221 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 15152, process_state 0x61
有时,输出的结尾类似于

19   4436   [main] cmake 2320 child_copy: done
44   239509 [main] cmake 9820 open_shared: name cygpid.10668 n 10668, shared 0xBB0000 (wanted 0x0), h 0x344, *m 6
   20 2735480 [main] cmake 14200 kill_pgrp: killing pid 5900, pgrp 5900, p->ctty /dev/pty0, ctty /dev/pty5
   24 2735504 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x358, PIPE_NOWAIT, NULL, NULL)
   16 2735520 [main] cmake 14200 sig_send: sendsig 0x358, pid 5900, signal 17, its_me 0
   19 2735539 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   24 2735563 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   23 2735586 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 5900, process_state 0x4C5
   20 2735606 [main] cmake 14200 kill_pgrp: killing pid 15152, pgrp 15152, p->ctty /dev/pty5, ctty /dev/pty5
 3486 2739092 [main] cmake 14200 sig_send: 1 = SetNamedPipeHandleState (0x3A0, PIPE_NOWAIT, NULL, NULL)
   44 2739136 [main] cmake 14200 sig_send: sendsig 0x3A0, pid 15152, signal 17, its_me 0
   33 2739169 [main] cmake 14200 sig_send: Not waiting for sigcomplete.  its_me 0 signal 17
   27 2739196 [main] cmake 14200 sig_send: returning 0x0 from sending signal 17
   25 2739221 [main] cmake 14200 _pinfo::kill: 0 = _pinfo::kill (17), pid 15152, process_state 0x61
这些问题的原因可能是什么


编辑: 产量

cmake . --trace
如下所示,在冻结之前:

Running with trace output on.
d/Dropbox/Programming/Cplusplus/workspace/Testprograms/test_cmake/CMakeLists.txt(1): cmakeminimum_required(VERSION 3.0.0 )
d/Dropbox/Programming/Cplusplus/workspace/Testprograms/test_cmake/CMakeLists.txt(2): project(helloworld ) 
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(36): 
if(CMAKE_HOST_UNIX )
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(37): find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) 
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(38): if(CMAKE_UNAME)
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(39): if(CMAKE_HOST_SYSTEM_NAME STREQUAL AIX )
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(45): else() 
usr/share/cmake-3.10.2/Modules/CMakeDetermineSystem.cmake(46): 
exec_program(${CMAKE_UNAME1 ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION )

CMake不喜欢树内构建。创建一个单独的生成文件夹

mkdir build
cd build
cmake ..
CMake不构建程序,它只创建构建文件。你的下一步是

mingw32-make
除非您有其他问题,否则您应该能够运行您的程序


迈克,那也不行。这次我收到了错误消息
4[main]cmake16324 chi1d\u info\u fork::abort:F:\msy532\usr\bin\msys-idn2-O.d11:加载到不同的地址:父(0x370000)!=chi1d(0x800000)
1-这是唯一的错误吗?2-你是在跑明威还是赛文?3-你是在什么阶段遇到这个错误的?Re 2-:这是MSYS2,一个使用Arch Linux的
pacman
makepkg
打包系统的Cygwin分支,可能还有很多其他定制。那么
cmake--trace
而不是
strace cmake
呢?它仍然挂起吗?另外,您是否尝试过卸载MSYS2软件包并安装Windows native CMake?我意识到键入MSYS2等价物
$(cygpath-w/cygdrive/c/path/to/directory/)
来为Windows版本的CMake提供目录
c:\path\to\directory
,是一件痛苦的事情,但这只是为了测试;在构建之前,这可能是问题所在。最后,确保您的环境已更新:
pacman-Syuu
。如果是,您可以搜索现有问题或在for CMake上打开新问题。虽然MSYS2和MINGW可能是完全不同的(比如MINGW和Cygwin),但我确实在MINGW软件包问题跟踪程序中发现了这一点。也许类似的事情正在发生在这里描述的事情上,杀死cc1.exe工作正常吗?它可能是包含在你自己的bug报告中的东西。如果你最近升级了,你可能会考虑降低最近升级的东西。我添加了<代码> CGuest-Trace的输出作为一个编辑(是的,它仍然挂起)。如果我显式调用Windows的“CMake安装,
/f/ProgramFiles/CMake/bin/CMake.exe-G“Unix Makefiles”
它可以工作!我将提交一份错误报告。谢谢你的帮助!