我正在尝试生成.msi安装程序cmake.我可以使用一些配置生成.dll和.lib文件CMakeLists.txt.请提供CMakeLists.txt生成.msi安装程序的示例.我需要在命令提示符中使用哪些命令?
到目前为止我使用的命令是:
> cmake -G"Visual Studio 10" -H"Root CMakeLists.txt path" -B"path to generate the sln"
> cmake --build "path of the sln" --config Release
> cpack -C Release
output: CPack Error: CPack generator not specified
Run Code Online (Sandbox Code Playgroud)
我使用以下配置生成.dll和.lib文件.
这是我的CMakeLists.txt:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(mydll)
INCLUDE_DIRECTORIES(common/include)
SET(my_lib_src dllmain.cpp mydll.cpp )
SET_SOURCE_FILES_PROPERTIES(${my_lib_src} PROPERTIES LANGUAGE C)
ADD_LIBRARY(mydll SHARED ${my_lib_src})
SET_TARGET_PROPERTIES(mydll PROPERTIES
LINKER_LANGUAGE C
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/common/bin
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/common/bin …Run Code Online (Sandbox Code Playgroud) 在 openshift 上安装它时与哨兵战斗后,我启动并运行它只是发现当向我的服务器发送事件时它会抛出这个错误:
12:30:59 [警告] django.request: Forbidden (CSRF cookie not set.): /api/1/envelope/ (status_code=403 request=<WSGIRequest: POST u'/api/1/envelope/'>) 10.125.2.1 - - [20/Jul/2020:12:30:59 +0000] "POST /api/1/envelope/HTTP/1.1" 403 6059 "-" "sentry.native/0.3.4"
如果我向 API 发送 curl 请求,我会得到一个显示 csrf 错误的简洁 HTML 网页。有人知道这里可能有什么问题吗?
我目前在使用install()CMake的功能时遇到问题v3.13.4。我的代码如下:
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION ${CMAKE_INSTALL_PREFIX}
FILES_MATCHING PATTERN "*.cfg"
)
Run Code Online (Sandbox Code Playgroud)
我的理解是,CMake 会将与此模式匹配的所有文件复制到我给定的位置${CMAKE_INSTALL_PREFIX},但我当前目录中的所有子文件夹也会被复制。另外,如何将多个文件结束模式复制到目的地?简单地说*.cfg | *.xyz或*.cfg || *.xyz不起作用。
编辑:
还尝试将其替换为FILES_MATCHING PATTERN:
FILES_MATCHING REGEX "[a-zA-Z0-9]*.ate|[a-zA-Z0-9]*.reserved"
Run Code Online (Sandbox Code Playgroud)
它只*.reserved再次复制文件和所有文件夹。
我有一个大致如下结构的 CMake 项目:
.
|-- library1
| |-- CMakeLists.txt
|-- library2
| |-- CMakeLists.txt
|-- executables
| |-- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
在executables我生成我的 2 个可执行文件。我想知道是否可以只生成一个可执行文件及其依赖项而不是全部。我听说了一些关于 cmake--target选项的消息,但我无法让它与cmake/3.13.4.
目前我们的项目已经安装了 Symfony 4.3。从那时起我们已经成长,2.7所以可能会有一些遗留垃圾,但总的来说我们的应用程序运行良好。我们有一个为每条路线添加前缀的调味系统(我不知道这是否是一个好主意,但当我们开始支持它时就是这样)。所以链接看起来像这样:
test.me/{flavor}/project/{UUID}
Run Code Online (Sandbox Code Playgroud)
我们使用注释进行路由,因此有一个annotations.yaml:
controllers:
resource: ../../src/App/Controller/
type: annotation
prefix: /{flavor}/
Run Code Online (Sandbox Code Playgroud)
现在,由于我们想要引入 API 文档,所以我们想要使用这个 php 包:https://github.com/zircote/swagger-php,它允许我们为 API 编写注释,就像我们使用路由一样,并生成一个swagger.json可以分发到我们的关联项目。问题是在编写注释时会弹出此错误:
$:bin/console cache:clear -e dev
// Clearing the cache for the dev environment with debug true
In FileLoader.php line 166:
[Semantical Error] The annotation "@OA\Schema" in class App\Controller\Api\Model\APIMessage
was never imported. Did you maybe forget to add a "use" statement for this annotation? in /config/routes/../../src/Catrobat/Controller/ (which is being imported from "/config/routes/annotations.yaml"). Make sure …Run Code Online (Sandbox Code Playgroud)