小编DrP*_*rJo的帖子

如何最好地告诉 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
Run Code Online (Sandbox Code Playgroud)

顶级 CMakeLists.txt 包含:

cmake_minimum_required( VERSION 3.6 )
project( sample_project VERSION 0.1 LANGUAGES CXX )

set( BUILD_SHARED_LIBS ON CACHE BOOL "" )

add_subdirectory( mylib )
add_subdirectory( myapp )
Run Code Online (Sandbox Code Playgroud)

mylib 文件夹中的 CMakeLists.txt 包含:

add_library( mylib src/mylibclass.cpp include/mylib/mylibclass.h )
set_target_properties( mylib PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
target_include_directories( mylib
    PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> PRIVATE src )  
Run Code Online (Sandbox Code Playgroud)

而 myapp 文件夹中的一个包含:

add_executable( myapp src/myapp.cpp )
target_link_libraries( myapp mylib …
Run Code Online (Sandbox Code Playgroud)

c++ windows dll cmake visual-studio

3
推荐指数
1
解决办法
7621
查看次数

地图的通用“多包含”

我经常遇到这样的用例,我必须检查一组键是否包含在一组嵌套映射中。我目前有一些实用嵌套深度的实现,如下所示:

  template< typename Key1T, typename Key2T, typename ValueT >
  bool contains
    ( std::map< Key1T, std::map< Key2T, ValueT > > const & m
    , Key1T                                        const & k1
    , Key2T                                        const & k2
    )
  {
    return m.contains( k1 ) && m.at( k1 ).contains( k2 );
  }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以将其实现为所有可能的嵌套深度的单个函数,也许可以促进可变参数模板?

c++ templates variadic-templates

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