草庐IT

cmake编译

全部标签

windows - CMake 找不到自定义命令 "ls"

我尝试为我的CLion项目运行一些基本命令,但它就是行不通。这是我的CMake设置。cmake_minimum_required(VERSION3.6)project(hello)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-std=c++11")set(SOURCE_FILESmain.cpp)add_executable(hello${SOURCE_FILES})add_custom_command(OUTPUThello.outCOMMANDls-lhelloDEPENDShello)add_custom_target(run_hello_outD

c++ - 如何最好地告诉 CMake 在哪里可以找到 dll

我有一个简单的项目结构,源自令人惊叹的教程https://rix0r.nl/blog/2015/08/13/cmake-guide/看起来如下:-src-CMakeLists.txt-mylib-include/mylib/mylibclass.h-src/mylibclass.cpp-CMakeLists.txt-myapp-src/myapp.cpp-CMakeLists.txt顶级CMakeLists.txt包含:cmake_minimum_required(VERSION3.6)project(sample_projectVERSION0.1LANGUAGESCXX)set(B

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\\

c# - 是否可以从 Visual Studio 编译 C# 程序以在 Mac 上运行?

我在VisualStudio2015上编写了一个C#程序,我希望能够在Mac和可能的Linux上运行它。这可能吗?我意识到在Mac上从Xamarin编译项目时,它被导出为.exe,那么运行在Windows上编译的.exe是否可以在Mac上运行?如果不是,我将如何做到?单个.exe是否不能跨平台并不重要,只要我可以为两个操作系统编译。另外,它是否真的是一个.exe并不重要,只要它可以运行即可。我是否需要在Mac上实际编译我的C#项目? 最佳答案 尝试在Mac中使用mono运行exe:/Library/Frameworks/Mono.f

在 cygwin/mingw 上为 windows 编译

因此,我正在尝试为cygwin中的cairo图形库编译一个简单的C示例。为cygwin编译时,一切都按预期工作,但对于windows它编译,但在尝试执行时不起作用。这是我的生成文件:CFLAGS=-lcairo#WIN32HEADERS=/usr/i686-w64-mingw32/sys-root/mingw/include/cairoWIN32HEADERS=/usr/i686-w64-mingw32/sys-root/mingw/include/cairo-I/usr/i686-w64-mingw32/sys-root/mingw/include/glib-2.0-I/usr/i6

windows - 动态编译的exe是什么意思?

从MySQL网站的一个页面上看到以下段落here:YoucanwritepluginsinCorC++(oranotherlanguagethatcanuseCcallingconventions).Pluginsareloadedandunloadeddynamically,soyouroperatingsystemmustsupportdynamicloadingandyoumusthavecompiledthecallingapplicationdynamically(notstatically).Forserverplugins,thismeansthatmysqldmustb

windows - 在 Windows 上用 Rust 编译 x64

我正在尝试使用Rust在Windows上编译x64。我已经设置:rustupdefaultstable-x86_64-pc-windows-msvc用下面的程序fnmain(){println!("{}",std::usize::MAX);}cargorun打印出4294967295但是cargorun--target--targetx86_64-pc-windows-msvc给我:error[E0463]:can'tfindcratefor'std'|=note:the'x86_64-pc-windows-msvc'targetmaynotbeinstalledx86_64-pc-w

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