我试图与构建过程分开编译单个.cpp文件.
如果我执行完整构建,则编译步骤将输出到创建项目时配置的目录.
但是,如果我只是要求编译,我最终会将目标文件转到与源相同的目录,更糟糕的是,它会继续并将目标文件链接到可执行文件,因为它应该进行编译.
注意我正在使用clang ++ for C++ 11进行编译,但我认为没有任何禁止它为什么调用Clang ++.exe第二次没有被请求的链接.
EDIT1
建造它时就是这样做的
-------------- Build: Debug in GOTW (compiler: GNU GCC Compiler)---------------
clang++.exe -Wall -fexceptions -g -std=c++11 -stdlib=libstdc++ -c
C:\Work\test\2010\C++11\CLang\GOTW\gotw.cpp -o obj\Debug\GOTW.o
clang++.exe -o bin\Debug\GOTW.exe obj\Debug\GOTW.o
Output size is 203.50 KB
Process terminated with status 0 (0 minutes, 11 seconds)
0 errors, 6 warnings (0 minutes, 11 seconds)
Run Code Online (Sandbox Code Playgroud)
然而,当Compile Current File执行时,它执行此操作:
clang++.exe -std=c++11 -stdlib=libstdc++ -c GOTW.cpp -o GOTW.o
1 warning generated.
clang++.exe -o GOTW.exe GOTW.o
Run Code Online (Sandbox Code Playgroud)
我不明白它为什么输出第二步,以及如何让它使用像构建一样的obj和bin目录
在工作中,我们有一个MFC扩展DLL,使用1.35构建良好但是当使用1.43构建时会导致以下错误:
error LNK2005: __pRawDllMain already defined in ApObs.obj
Run Code Online (Sandbox Code Playgroud)
如果我激活BOOST_LIB_DIAGNOSTIC旧构建列表:
linking to lib file: libboost_thread-vc71-mt-gd-1_35.lib
Run Code Online (Sandbox Code Playgroud)
和
linking to lib file: libboost_thread-vc71-mt-gd-1_43.lib
Run Code Online (Sandbox Code Playgroud)
所以没有改变与哪个库链接
完整的错误消息是:
libboost_thread-vc71-mt-gd-1_43.lib(tss_pe.obj) : error LNK2005: __pRawDllMain already defined in ApObs.obj
Run Code Online (Sandbox Code Playgroud)
我在两个库版本中都在tss_pe.cpp上做了一个diff,它们是相同的,所以我不确定是什么问题.
你可以通过定义消息消失,BOOST_THREAD_USE_DLL但是我们需要发布BOOST_THREAD-VC71-MT-GD-1_43.DLL,所以我不认为这是最好的解决方案.
我之前在 Windows 10 家庭版上成功安装了 Visual Studio 2017 RC Enterprise。我在通知区域看到了 RC 更高版本的更新,因此我单击该通知来安装它。
\n\n安装一直到尝试安装Android模拟器,但失败,日志说需要Win10 Pro。
\n\n所以我从安装选项中删除了模拟器,但安装没有完成,这次日志显示:
\n\n[27ac:0038][2017-01-31T10:08:47] Download requested: https://download.microsoft.com/download/8/7/A/87AEAAB0-D624-400E-899E-61FAFAE42BA5/Microsoft.VisualStudio.MinShell.Interop.Msi.msi\n[27ac:003a][2017-01-31T10:08:47] Attempting download \'https://download.microsoft.com/download/8/7/A/87AEAAB0-D624-400E-899E-61FAFAE42BA5/Microsoft.VisualStudio.MinShell.Interop.Msi.msi\' using engine \'WebClient\'\n[27ac:0026][2017-01-31T10:08:48] Completed: Installing Microsoft.VisualStudio.MinShell.Msi\n[27ac:0026][2017-01-31T10:08:48] Error: Package \'Microsoft.VisualStudio.MinShell.Msi,version=15.0.26109.1\' failed to install. MSI: C:\\ProgramData\\Microsoft\\VisualStudio\\Packages\\Microsoft.VisualStudio.MinShell.Msi,version=15.0.26109.1\\Microsoft.VisualStudio.MinShell.Msi.msi, Properties: REBOOT=ReallySuppress ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL="7" VSEXTUI="1" VS7.3643236F_FC70_11D3_A536_0090278A1BB8="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise" , Return code: 1316, Details: The specified account already exists.\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试按照Visual Studio 2017 RC 安装错误“指定的帐户已存在”中的说明进行操作。然而它说the action is only valid for installed products
昨天,我确实在程序卸载列表中注意到了 MinShell,并尝试从那里删除它。
\n\n然而,这没有什么区别,每次我尝试运行安装程序时都会遇到相同的错误。我尝试确保程序和功能中没有安装 VS2017 相关项目,并从程序文件等中手动删除目录 …
我有一个对话框应用程序,我想在对话框的顶部有可点击的菜单项.这些项目不显示下拉菜单,但实际运行相关命令.
我这样做是通过在对话框属性中设置Popup = False并指定一个消息ID,但是我的问题是没有能力正确地禁用该项目,因为该项目无法点击(取决于存储在该项目中的内部状态)对话)
我已经找到了如何从http://www.microsoft.com/msj/0299/c/c0299.aspx禁用任何弹出 - 父菜单项,但这不是我想要的
我还了解了如何从msdn知识库文章KB242577向菜单添加菜单命令路由.
这适用于子菜单项,但不适用于顶级菜单.
我目前正在使用以下功能来执行禁用
void CYourDlg::EnableMenuItem(UINT nCommand, BOOL bEnable)
{
CMenu* pMenu = GetMenu();
pMenu->EnableMenuItem(nCommand, bEnable ? 0 : MF_DISABLED | MF_GRAYED);
}
Run Code Online (Sandbox Code Playgroud)
这一半可以工作,如果你远离应用程序的alt-tab它显示为禁用,否则它不会.
有没有办法以编程方式使该区域无效?
我认为可能涉及非客户区域消息.