C++ Visual Studio 编译器按托管方式编译本机代码
C++ Visual Studio Compiler compiles native code as managed
我在 VS 下启动了一个新的解决方案,它有一个托管的 UWP 代码项目和一个本机项目。编译器编译本机代码并交付一个 .lib 文件就好了。编译托管代码时,编译器再次编译本机代码——作为托管代码并吐出错误。
我有另一个可用的解决方案,我尝试复制这些设置。经过一天比较 属性 设置后,我无法弄清楚为什么它正在做它正在做的事情。
关于去哪里看的想法?
_____ 下面新增_____
我开始了一个新的解决方案项目并复制了所有内容。这是我学到的。
首先,编译顺序不同——缺少一个 stdafx.h 文件,错误从无限增加到只有 25 个。它们现在与一个文件 MotionBase 相关。本机项目编译得很好,然后托管项目编译并在 MotionBase 上运行。此代码示例给出错误“'MotionBase':不是 'BallLib' 的成员”和“'input':未知覆盖说明符”。
#pragma once
#include "stdafx.h"
#include "FiniteDiffHelpers.h"
#include "MotionBase.h"
#include "MultiVarSolver.h"
namespace BallLib {
class PathFinderHelper : public FiniteDiffHelper
{
public:
PathFinderHelper();
Line locs;
BallLib::MotionBase output;
MotionBase input;
.....
PathFinderHelper 在本机项目中编译良好。 MotionBase 中没有错误。 MotionBase 是 BallLib 的一部分。 Intelisense 在 PathFinderHelper 中没有给出任何错误。
并非所有相关设置都在项目属性对话框中。还要检查非模态属性 window,特别是在解决方案资源管理器中选择了项目到项目的引用。
在那里你会发现一个名为 "Use Library Dependency Inputs" 的设置,它会导致主项目包含库项目中的各个源文件,而不是静态库。确保将其设置为 False。
确保 stdafx.h 文件已正确插入代码中。构建顺序不同,因此您可能会被困住。
在托管 pch.h 文件中包含 (#include) 本机 stdafx.h。
我在 VS 下启动了一个新的解决方案,它有一个托管的 UWP 代码项目和一个本机项目。编译器编译本机代码并交付一个 .lib 文件就好了。编译托管代码时,编译器再次编译本机代码——作为托管代码并吐出错误。
我有另一个可用的解决方案,我尝试复制这些设置。经过一天比较 属性 设置后,我无法弄清楚为什么它正在做它正在做的事情。
关于去哪里看的想法?
_____ 下面新增_____
我开始了一个新的解决方案项目并复制了所有内容。这是我学到的。
首先,编译顺序不同——缺少一个 stdafx.h 文件,错误从无限增加到只有 25 个。它们现在与一个文件 MotionBase 相关。本机项目编译得很好,然后托管项目编译并在 MotionBase 上运行。此代码示例给出错误“'MotionBase':不是 'BallLib' 的成员”和“'input':未知覆盖说明符”。
#pragma once
#include "stdafx.h"
#include "FiniteDiffHelpers.h"
#include "MotionBase.h"
#include "MultiVarSolver.h"
namespace BallLib {
class PathFinderHelper : public FiniteDiffHelper
{
public:
PathFinderHelper();
Line locs;
BallLib::MotionBase output;
MotionBase input;
.....
PathFinderHelper 在本机项目中编译良好。 MotionBase 中没有错误。 MotionBase 是 BallLib 的一部分。 Intelisense 在 PathFinderHelper 中没有给出任何错误。
并非所有相关设置都在项目属性对话框中。还要检查非模态属性 window,特别是在解决方案资源管理器中选择了项目到项目的引用。
在那里你会发现一个名为 "Use Library Dependency Inputs" 的设置,它会导致主项目包含库项目中的各个源文件,而不是静态库。确保将其设置为 False。
确保 stdafx.h 文件已正确插入代码中。构建顺序不同,因此您可能会被困住。
在托管 pch.h 文件中包含 (#include) 本机 stdafx.h。