メモとログ

メモとログ

C++20 with CLion

コンパイラの準備

ここに書いてある通り,コンパイラを以下のバージョンにする必要あり

  • Clang: 10 or later
  • GCC: 10 or later
  • MSVC: 16.3

CMakeLists.txt

以下の文言を加える

set(CMAKE_CXX_STANDARD 20)

gcc, g++の更新

ここを参考にした

$ sudo apt install gcc-10 g++-10
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10

誉田 哲也

姫川玲子シリーズ

独特の感性・閃きで捜査を進める系 1. ストロベリーナイト 1. ソウルケイジ 1. シンメトリー 1. インビジブルレイン 1. 感染遊戯 1. ブルーマーダー 1. インデックス 1. ルージュ 硝子の太陽 1. ノーマンズランド 1. オムニバス

単作

  1. 月光
  2. ケモノの城

麻見 和史

警視庁捜査一課十一係/警視庁殺人分析班シリーズ

父親も刑事だった如月塔子の閃きとペアを組んでいる切れ者鷹野で何とかする系 1. 石の繭 1. 蟻の階段 1. 水晶の鼓動 1. 虚空の糸 1. 聖者の凶数 1. 女神の骨格 1. 蝶の力学 1. 雨色の仔羊 1. 奈落の偶像 1. 鷹の砦 1. 凪の残響 1. 天空の鏡 1. 賢者の棘

警視庁文書捜査官シリーズ

文字フェチの鳴海が主人公というより,ゴリゴリ足で稼ぐ矢代・割りと体育会系の夏目が主人公?矢代目線で書かれている 1. 警視庁文書捜査官 1. 永久囚人 1. 緋色のシグナル 1. 灰の轍 1. 影の斜塔 1. 愚者の檻 1. 銀翼の死角 1. 茨の墓標

vcpkg boost on Mac OSX

vcpkgでBoostをインストールできなかったので,Boostのインストールに関してはHomebrewに変更した. 悲しい.

libffi関係のエラーはここに書いた方法で解決したけど,python関係のエラーを解決する方法が見つからなかった.

vcpkg: m1 Mac

CMakeLists.txtでインストールしたパッケージを読み込むとき

インストール・パッケージのインストール共成功したが,cmakeで失敗.

/VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake でトラブったみたいで,アーキテクチャが不明とのこと.

CMake Warning at /VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake:428 (message):
  Unable to determine target architecture, continuing without vcpkg.

VCPKG_TARGET_TRIPLETにアーキテクチャを設定したら問題なく動いた.

set(VCPKG_TARGET_TRIPLET "x64-osx")
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")

libffi のパッケージインストールエラー

boostのインストール中にlibffiのBUILD FAILEDになった.

  • 解決策はこれを見るとわかる.
  • VCPKG_ROOT/ports/libffi/CMakeLists.txt を以下のように修正する.
  • 修正後にもう一度vcpkg install libffiを実行する
# 修正前
set(KNOWN_PROCESSORS x86 x86_64 AMD64 ARM ARM64 i386 armv7l armv7-a aarch64)
# 修正後
set(KNOWN_PROCESSORS x86 x86_64 AMD64 ARM arm64 i386 armv7l armv7-a aarch64)

vcpkg: install on Ubuntu 20.04

install vcpkg

/optにインストール

cd /opt
git clone https://github.com/microsoft/vcpkg
sudo chown -hR charmie11:charmie11 ./vcpkg
./vcpkg/bootstrap-vcpkg.sh

install packages

package version notes
boost 1.75.0
eigen3
ceres-solver 2.0.0 vcpkg install ceres
vcpkg install boost
vcpkg install eigen
vcpkg install ceres[suitesparse,cxsparse,eigensparse,tools]

Eigen3

The package eigen3:x64-linux provides CMake targets:

    find_package(Eigen3 CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Eigen3::Eigen)

ceres-solver

The package ceres:x64-linux provides CMake targets:

    find_package(Ceres CONFIG REQUIRED)
    target_link_libraries(main PRIVATE ceres Ceres::ceres)

cmake

方法は2つ 1. cmakeのコマンドライン引数で -DCMAKE_TOOLCHAIN_FILE=/VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake を指定 1. CMakeLists.txt内で変数CMAKE_TOOLCHAIN_FILEをproject()の前に定義

set(VCPKG_ROOT "/opt/vcpkg")
set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")

set(PROJ_NAME "test_vcpkg")
project(${PROJ_NAME})

set(CMAKE_CXX_STANDARD 11)

find_package(Eigen3 CONFIG REQUIRED)
message(STATUS "EIGEN3_INCLUDE_DIR: ${EIGEN3_INCLUDE_DIR}")

add_executable(${PROJ_NAME}
  main.cpp
)
target_link_libraries(${PROJ_NAME} PRIVATE
  Eigen3::Eigen
)