Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Visual studio 在visualstudio中使用MingGW编译的静态库_Visual Studio_Compilation_Mingw_Libraries - Fatal编程技术网

Visual studio 在visualstudio中使用MingGW编译的静态库

Visual studio 在visualstudio中使用MingGW编译的静态库,visual-studio,compilation,mingw,libraries,Visual Studio,Compilation,Mingw,Libraries,我正在从事一个100%C项目,该项目的windows端口是使用visual studio 2008 express edition编译的。我的项目使用了几个linux库,我可以使用MingGW静态编译这些库 我想知道将我的项目链接到这些库是否安全,以及可能遇到的问题 我可以编译我在VisualStudio中使用的库,但这将是相当多的工作,因为它们基于autoconf,并且不提供任何项目文件 我已经读过了。让我担心的是“静态编译”部分。如果库被编译成DLL,那么很有可能它会工作,但是当您静态链接时

我正在从事一个100%C项目,该项目的windows端口是使用visual studio 2008 express edition编译的。我的项目使用了几个linux库,我可以使用MingGW静态编译这些库

我想知道将我的项目链接到这些库是否安全,以及可能遇到的问题

我可以编译我在VisualStudio中使用的库,但这将是相当多的工作,因为它们基于autoconf,并且不提供任何项目文件

我已经读过了。

让我担心的是“静态编译”部分。如果库被编译成DLL,那么很有可能它会工作,但是当您静态链接时,MINGW编译器将对其运行库做出某些假设,这些假设是正确的,但对MSVC运行库可能是正确的,也可能不是正确的。如果您要求使用一个编译器编译的代码链接到另一个编译器的RTL,那么可能会造成混乱

<>你有一个优势是你在这里处理C而不是C++——用C++库,你不可能有这个工作,C可能就是这样。我会非常小心地确保编译器之间的结构对齐是相同的,并尝试一下。如果链接器抱怨缺少符号,那么你已经得到了关于RTL到底有多兼容的答案,如果它链接正常,那么试试看

所有这些都说,我已经在一个C++项目上工作了,它有一个用GCC编译的C库(我想是MIW),原因是你提到的类似原因。它确实工作了,软件运行正常,并且已经像这样使用了很长一段时间。我们遇到的主要问题是,库的某些构建会阻止MSVC可执行文件与调试信息链接;仔细调整MINGW命令行修复了这个问题