小编Tal*_*alG的帖子

将 FetchContent_Declare 与 CMAKE_ARGS 一起使用

我正在使用cmake v3.13,我想将我ExternalProject_Add()SEAL库更改为:

include(FetchContent)
# Get the seal library
set(SEAL "seal")
FetchContent_Declare(
        ${SEAL}
        GIT_REPOSITORY  https://github.com/microsoft/SEAL
        GIT_TAG         v3.5.2

)
FetchContent_GetProperties(${SEAL})
if(NOT ${SEAL}_POPULATED)
    FetchContent_Populate(${SEAL})
    add_subdirectory(${${SEAL}_SOURCE_DIR} ${${SEAL}_BINARY_DIR})
endif()
Run Code Online (Sandbox Code Playgroud)

当我使用时,ExternalProject_Add()我已经使用过CMAKE_ARGS -DBUILD_SHARED_LIBS=ON并且这不适FetchContent_Declare()用于仅下载库。

SEAL V3.5.2的CMakeLists.txt使用它来检查,如果要构建一个共享库的需求:

# Should we build also the shared library?
set(BUILD_SHARED_LIBS_STR "Build shared library")
option(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_STR} OFF)
if(MSVC AND BUILD_SHARED_LIBS)
    message(WARNING "This build system only supports a static build; disabling `BUILD_SHARED_LIBS`")
    set(BUILD_SHARED_LIBS OFF CACHE BOOL ${BUILD_SHARED_LIBS_STR} FORCE)
endif()

# Conditionally …
Run Code Online (Sandbox Code Playgroud)

c++ cmake seal

7
推荐指数
1
解决办法
4061
查看次数

使用线程时 Rust 中 self 参数的生命周期

我正在学习 Rust,我有这个代码:

use std::sync::{Arc, Mutex};
use std::thread::spawn;

pub struct MyText {
    my_text: Mutex<Vec<String>>,
}

pub trait MyTextOptions {
    fn add(&self, t: String);
}

impl MyTextOptions for MyText {
    fn add(&self, text: String) {
        let int_text = Arc::new(self);
        let put_into_my_text = spawn(move || {
            let mut text_feed = int_text.my_text.lock().unwrap();
            text_feed.push(text)
        });
        put_into_my_text.join();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,我得到:

use std::sync::{Arc, Mutex};
use std::thread::spawn;

pub struct MyText {
    my_text: Mutex<Vec<String>>,
}

pub trait MyTextOptions {
    fn add(&self, t: String);
}

impl MyTextOptions for MyText { …
Run Code Online (Sandbox Code Playgroud)

rust

2
推荐指数
1
解决办法
1482
查看次数

标签 统计

c++ ×1

cmake ×1

rust ×1

seal ×1