jjzjj

windows - 为什么在 Windows 上的 CMake 中构建时会出现重复的符号链接(symbolic link)器错误?

我有一个CMake设置,可以将4个静态库和1个共享库链接到一个顶级共享库(我们称之为Top.dll)。除了一件事,这将工作正常。我有一个模块定义文件,表示哪些符号应该公开。Top.dll构建,到目前为止一切顺利。现在,当我尝试通过CMake将可执行文件与Top.dll链接时,我得到每个公共(public)符号的链接器错误,声称它在两个地方定义(Top.dll和实际定义它的静态库),即使Top.dll不包含自己的原始定义。如果我删除静态库,那么我会按预期得到未解析的符号错误。如果我删除模块定义文件,我会得到相同的结果。似乎它是零次或两次。我在这里缺少一些设置吗?我不认为我以非基本方式使用

windows - Windows下用MinGW-w64编译POCO库(找不到消息编译器)

我在执行来自PocoMacros.cmake的部分代码时遇到问题文件:#CMAKE_MC_COMPILER-wheretofindmc.exeif(WIN32)#cmakehasCMAKE_RC_COMPILER,butnomessagecompilerif("${CMAKE_GENERATOR}"MATCHES"VisualStudio")#thispathisonlypresentfor2008+,butwecurrentlyrequirePATHto#besetupanywayget_filename_component(sdk_dir"[HKEY_LOCAL_MACHINE\\

windows - Windows 的 CMake 安装目标 bin 等效项

在Linux上,我将CMake配置为在bin文件夹中安装输出。然后无论当前目录是什么,我都可以在终端中调用可执行文件。我做到了:Install(TARGETS...DESTINATIONbin)在Windows上,它不起作用。它告诉我:'whatever'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.Windows的等效目标是什么? 最佳答案 与Linux不同,Windows没有用于安装可运行文件的公共(public)目录。如果您的项目

c++ - CMake 和#pragma comment(lib)

对于我的CMake项目,我有一个外部库,由一个头文件和几个.lib/.dll对组成。头文件有选择地链接到.lib/.dll对之一,举个例子:#ifdefDEBUG#pragmacomment(lib"exampled.lib")#elif#pragmacomment(lib"example.lib")#endif完整来说,有一个.lib和匹配的.dll用于32/64位和调试/发布,所以总共有4对。头文件内部是正确的#ifdef-链接正确库的逻辑。正如我所说,它是一个外部库,所以我不想更改该header。向CMake教授此内容的正确方法是什么?对于编译时间(即包含目录),我可以使用tar

windows - cmake 在调用 'git' 命令时无法读取 ssh key

我想让“cmake”使用“gitexport”命令从git存储库中导出一些文件。每次我这样做都会收到错误Permissiondenied,pleasetryagain.git@xxxx:Permissiondenied(publickey,password).fatal:Theremoteendhungupunexpectedly如果我自己从DOS命令行执行此操作,系统会在提示中询问密码。据我所知,我的sshkey已经提供给监视git存储库的网络管理员。你知道为什么“cmake”无法获取我的sshkey吗?如何防止询问密码?下面是我正在使用的命令execute_process(COMM

windows - 无法在 Visual Studio 2017 : "Access is denied." 下使用或不使用调试器运行 CMake 可执行文件

我正在尝试在VisualStudio2017的调试器下运行使用CMake生成的解决方案文件构建的程序以调试问题。但是,每当我尝试选择StartDebugging或StartWithoutDebugging时,我都会收到以下错误弹出窗口。Unabletostartprogram'E:\build\someprogram\build\x64\Debug\ALL_BUILDAccessisdenied.乍一看,问题听起来像描述的问题here.然而,据称该错误已在VS201715.5中修复,我目前使用的是15.6.7。编译后的可执行文件的位置不在RAM磁盘或网络驱动器上,而是在物理驱动器上。并

C++ 构建过程 - lib 依赖项

我有一个包含5个项目的VisualStudio解决方案主要:应用A、B、C、D:静态库主要取决于A,B。A依赖于C,D。我对构建过程的理解很脆弱。库单独构建良好,尤其是A;我不觉得我在将C和D链接到A。为了构建Main应用程序,我必须将A、B、C和D作为输入库,即使Main仅直接依赖于A、B。现在我正尝试在Linux上使用CMake构建整个东西,我发现自己再次接触到这些链接。这次我不想使用蛮力,而是更愿意了解它是如何链接在一起的。我是否应该将A、B、C和D构建为.a静态库并让Main包含它们?如果没有来自C和D的符号,A怎么可能构建? 最佳答案

c++ - Windows 10下为VTK生成Makefile时Qt mkspecs路径错误

我当前的任务是在Windows10下使用(静态)Qt和VTK为应用程序设置工作环境。我成功安装了Qt5.11.1static,现在想构建VTK。任何版本的VTK都可以,只要它与Qt5.11.1兼容,并且必须构建Qt模块(VTK_Group_Qt)。对于我的版本,我决定使用VTK8.1.1,但如前所述,任何版本都可以。我使用CMakeGUI配置VTK,使用MinGWMakefile(我使用MinGW64),效果很好。然后我想继续生成Makefile,打开VTK_Group_Qt。Qt的路径和版本已经被正确识别:Qt5Core_DIR      C:/build_environment/q

windows - CMake 告诉我什么(Windows 上的错误)?

我不认为自己是CMake的新手,但我无法让它在我获得的较新的Windows机器上运行。对我有用的唯一生成器是一个实际的visualstudio项目生成器(例如“VisualStudio142015Win64”)。我尝试了几个最新版本的CMake(3.12.2、3.10.3),当我尝试另一个生成器(NMakeMakefilesJOM、NMakeMakefiles、CodeBlocks-NMakeMakefiles等)时,总是得到以下信息。我应该补充一点,我在以管理员身份打开的VS2015x64native工具命令提示符窗口中运行此命令行。D:\Projects\build-QWar-ne

c++ - 如何正确设置 CMakeLists.txt 文件?

我有一个简单的C++测试项目,我的CMakeLists.txt文件写成如下;cmake_minimum_required(VERSION2.8)set(CMAKE_C_COMPILER"C:/MinGW/bin/gcc")set(CMAKE_CXX_COMPILER"C:/MinGW/bin/g++")project(simpleTest)add_executable(mainmain.cpp)当我尝试运行CMakeGUI并将生成器设置为MinGW时,我收到以下错误消息:TheCcompileridentificationisGNU4.6.1TheCXXcompileridentifi