その後いくつか試したことと、ChatGPTにお聞きしたところ、別フォルダをコピーして別プロジェクトで作成するとき(たぶんほとんど場合はこのパターンですが)下記でよさそうだ
- CMakeLists.txt
project(<旧プロジェクト名>) の部分を新しいプロジェクト名に変更。 - .vscode/settings.json(存在する場合)
CMakeTools の設定でプロジェクト名を指定している場合、適宜修正。 - CMakePresets.json(存在する場合)
プロジェクトディレクトリのパスなどが記載されていれば、新しいディレクトリ名に修正。 - mbed_app.json(存在する場合)
アプリケーション名や特定の設定を変更したい場合に修正。 - プロジェクト内部のコード
main.cpp やその他のコード内で、プロジェクト名をハードコーディングしている部分があれば修正。 - ビルドディレクトリ
build/ フォルダはコピーしないか、一度削除して新しくCMakeを実行し、再生成する。
CMakeList.txtのプロジェクト名とbuildフォルダがポイントのようだ
CMakeList.txtの変更箇所
project(f411_pat9130 ← プロジェクト名を変更する
add_executable(${PROJECT_NAME} main.cpp PAT9130.cpp ) 別ファイルを含む場合は消すか追加する
2行目を忘れていると、リンク時にエラーが出て意味がわからなくなる
mbed_app.json5
Nucleo、KL25Zの場合はmbed_app.jsonも環境に合わせて修正が必要
{
"config":{
"usb_speed": {
"help": "USE_USB_OTG_FS or USE_USB_OTG_HS or USE_USB_HS_IN_FS",
"value": "USE_USB_OTG_FS"
}
},
"target_overrides": {
"*": {
// By default, use a serial baudrate of 115200 and enable buffering on the serial port.
"platform.stdio-baud-rate": 115200,
"platform.stdio-buffered-serial": 1,
"target.device_has_add": ["USBDEVICE"]
}
}
}
やり方が正しいかわからないが、やったことを記しておく
build の中にある、CMakeCache.txtを削除
これで、ビルドが最初から開始して binファイルができた。
これを行う前には、.vscodeの下に作られる、settings.json以外の二つのファイルを削除したりした。たぶん、上記のファイルの削除だけで良いと思われる。プロジェクトのトップの名称を変えてビルド[All]を行うと、ビルドに失敗しCMakeのリストの名称と違うみたいなエラーが出る、そこにキャッシュがどうこうと記載があったので、たぶんこれでいいんだと思う。
vscodeというのは、どうも開発環境ではなくてソースコードを書くツールというイメージなんだろうか、ビルド関係はこのCMake**とかってのが、そのルールに従って行われているということなんだろうか。。こういう基本的なことをわかってない(知ってない)からイレギュラーなことをしようとすると、わかんなくなるんですが。
できればこういうことわかんなくても作れるようになって欲しいなぁ。
コメントを追加