Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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++ Visual Studio在vmware中与gcc/gdb交叉编译->;内存访问错误_C++_C_Linux_Visual Studio_Cross Compiling - Fatal编程技术网

C++ Visual Studio在vmware中与gcc/gdb交叉编译->;内存访问错误

C++ Visual Studio在vmware中与gcc/gdb交叉编译->;内存访问错误,c++,c,linux,visual-studio,cross-compiling,C++,C,Linux,Visual Studio,Cross Compiling,我已经将VisualStudio配置为通过新的Linux编译器功能(交叉编译)在Linux中通过GCC编译我的文件 一切正常:VS在我的主机Linux系统上编译并创建正确的文件。所以我创建了一个虚拟机。我现在面临的问题是,我想我无法访问虚拟机内存 每次我尝试运行程序时,都会弹出此消息: 程序 消息 我想我只需要以管理员的身份运行visual studio,但不起作用。为了澄清,VCLinux不是交叉编译器,它只是在visual studio的控制下在目标Linux系统上构建和执行应用程序。不需要

我已经将VisualStudio配置为通过新的Linux编译器功能(交叉编译)在Linux中通过GCC编译我的文件

一切正常:VS在我的主机Linux系统上编译并创建正确的文件。所以我创建了一个虚拟机。我现在面临的问题是,我想我无法访问虚拟机内存

每次我尝试运行程序时,都会弹出此消息:

程序 消息
我想我只需要以管理员的身份运行visual studio,但不起作用。

为了澄清,VCLinux不是交叉编译器,它只是在visual studio的控制下在目标Linux系统上构建和执行应用程序。不需要在Windows主机上以管理员身份运行,也不需要在Linux目标上以root用户身份运行(除非您的应用程序需要root权限,即使这样也要避免)

“托管Linux系统”和您创建的“虚拟机”之间是否有区别。我希望它们是一样的,但你提到它们的顺序是不寻常的

您说您的VisualStudio项目是在VCLinux下构建的。那么,在Linux目标上,是否为项目创建了一个目录,其中包含一个子目录
bin/x32/Debug
(或
bin/x64/Debug
),其中包含一个可执行文件
.out
(或类似文件)?在这种情况下,所有的基本连接和通信工作正常。 当您登录到Linux系统并直接从命令行和gdb下运行可执行文件时会发生什么


您是否将项目设置为VS
启动项目(右键单击项目)?VS工具栏上的“调试”按钮是否显示
远程GDB调试器

vmware不是编译器!你编译了Visual Studio的源代码?当然不是。正如您已经阅读了我的问题,我已经设置了一个运行Linux的虚拟机。Visual studio通过gcc远程编译文件…您应该阅读标题:“Visual studio与…交叉编译”。选择你使用的语言。C和C++是不同的语言!谢谢你的提示。我不知道。我尝试过这两种语言,但它们都会产生此错误。哦,好吧^^我想我将其与vs中的“跨平台”选项卡混合。是的,出于测试目的,我创建了一个“hello world”程序,当我单击远程GDB调试器时,它生成的程序会抛出错误,但我可以在我的Linux机器上运行它。在项目属性页中,调试选项卡,您是否尝试将
调试模式
gdbserver
更改为
gdb
,启动应用程序并捕获输出/调试窗口的内容,然后将其发布到此处。哦,非常奇怪,现在它正在使用gdb。C++和C代码。C代码也支持gcc。我还可以设置断点。我是否缺少启动gdbserver之类的东西?gdbserver使用端口4444,然后你就把我难住了。但至少可以在gdb模式下进行调试。如果您愿意,您可以准确地写出您的系统配置,并在VCLinux项目GitHub站点上作为问题提出:[
int main()
{
    return 0;
}
Warning:
Cannot insert breakpoint -1.
Cannot access memory at address 0x530