Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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++ 命令行错误D8003:链接时缺少源文件名_C++_Visual Studio 2010_Autotools - Fatal编程技术网

C++ 命令行错误D8003:链接时缺少源文件名

C++ 命令行错误D8003:链接时缺少源文件名,c++,visual-studio-2010,autotools,C++,Visual Studio 2010,Autotools,我正在使用Autotools编译Matlab模块。最初,我们使用Libtool来完成,但它在处理微软的编译器方面确实做得很糟糕。因此,我们正在删除Windows版本的Libtool 以下是一些可能有用的信息: $ cl /V Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved

我正在使用Autotools编译Matlab模块。最初,我们使用Libtool来完成,但它在处理微软的编译器方面确实做得很糟糕。因此,我们正在删除Windows版本的Libtool

以下是一些可能有用的信息:

$ cl /V
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.


$ uname -a
CYGWIN_NT-6.1 RatTop 1.7.18(0.263/5/3) 2013-04-19 10:39 i686 Cygwin
不幸的是,我有一个无法解释的链接错误:

CXXLD    AverageFilter.mexw32
cl  /DTRILIBRARY /DANSI_DECLARATORS /DNO_TIMER /D_HAVE_MATLAB_MODULES_ /D_GNU_SOURCE -O2 -DWIN32 -D_INTEL_WIN_ -EHsc /link /OUT:AverageFilter.mexw32 AverageFilter.obj /DLL /export:mexFunction /link /LIBPATH:"C:/root/extern/lib/win32/microsoft" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /INCREMENTAL:NO /manifest ./libISSMMatlab.a ../../c/libISSMModules.a ../../c/libISSMCore.a C:/root/home/Daeden/issm/trunk-jpl/externalpackages/petsc/install/lib/libpetsc.lib /link /LIBPATH:"C:/root/home/Daeden/issm/trunk-jpl/externalpackages/petsc/install/lib" libpetsc.lib /nologo
cl : Command line error D8003 : missing source filename
Makefile:860: recipe for target `AverageFilter.mexw32' failed

有人能解释一下如何消除这个错误吗?如果我试图编译,这是有意义的,但我只是尝试链接。

Microsoft的C/C++编译器可以通过“/link”命令或称为的命令将选项传递给链接器

因此,“/Fe”选项相当于“/link/OUT:”。这绝对解决了问题

或者,标志的顺序可以解决该问题。通过改变这一点:

/link /OUT:AverageFilter.mexw32 AverageFilter.obj
为此:

AverageFilter.obj /link /OUT:AverageFilter.mexw32

链接器调用正确。

Microsoft的C/C++编译器可以通过“/link”命令或称为的命令将选项传递给链接器

因此,“/Fe”选项相当于“/link/OUT:”。这绝对解决了问题

或者,标志的顺序可以解决该问题。通过改变这一点:

/link /OUT:AverageFilter.mexw32 AverageFilter.obj
为此:

AverageFilter.obj /link /OUT:AverageFilter.mexw32

链接器被正确调用。

对于我的特殊情况,在 C++项目属性->强>通用->命令行<强/> /p> 我有选择 /I“$(OutDir)”/I.“

我必须把这个换成


/I“$(OutDir)“/I”。

对于我的特殊情况,在 C++项目属性->强>通用->命令行<强/> /p> 我有选择 /I“$(OutDir)”/I.“

我必须把这个换成


/I“$(OutDir)“/I”。

在编译过程中遇到此错误。对我来说,这是因为编译器无法处理尾随斜杠

/external:I "$(WindowsSdkDir)"
扩展到

/external:I "C:\Program Files (x86)\Windows Kits\10\"
这触发了错误。添加一个点为我修复了它:

/external:I "$(WindowsSdkDir)."

只是在编译过程中遇到了这个错误。对我来说,这是因为编译器无法处理尾随斜杠

/external:I "$(WindowsSdkDir)"
扩展到

/external:I "C:\Program Files (x86)\Windows Kits\10\"
这触发了错误。添加一个点为我修复了它:

/external:I "$(WindowsSdkDir)."

我刚刚遇到了完全相同的问题/解决方案。你知道为什么会这样吗?我刚刚遇到了完全相同的问题/解决方案。你知道为什么会这样吗?