質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

Q&A

解決済

2回答

1475閲覧

MICROCHIP MPLAB XIDEで過去のプロジェクトがundefined reference toが出てコンパイルできない

YoshinagaK

総合スコア21

コンパイラ

コンパイラは、プログラミング言語で記述したソースコードを、コンピュータの実行形式であるオブジェクトコードに変換するプログラムです。

0グッド

0クリップ

投稿2022/02/25 08:14

編集2022/02/26 01:55

MICROCHIP製の開発環境 MPLAB XIDE v5.30で過去のプロジェクトを読み込んだものがコンパイルしようとするとundefined reference toが出てコンパイルできません。

過去のプロジェクトは2018年のものです。
[File]-[Open Project]でディレクトリを指定して開くことはできます。
[Production]-[Build Project]で以下のようなメッセージが出ます。

"C:\Program Files (x86)\Microchip\xc16\v1.41\bin\xc16-gcc.exe" -o dist/Opt2/production/M2M-VC9.X.production.elf build/Opt2/production/_ext/1472/main.o -mcpu=24FJ64GA308 -omf=elf -DXPRJ_Opt2=Opt2 -no-legacy-libc -Wl,--local-stack,,--defsym=__MPLAB_BUILD=1,,--script=p24FJ64GA308.gld,--stack=16,--check-sections,--data-init,--pack-data,--handles,--isr,--no-gc-sections,--fill-upper=0,--stackguard=16,--no-force-link,--smart-io,-Map="dist/Opt2/production/M2M-VC9.X.production.map",--report-mem,--memorysummary,dist/Opt2/production/memoryfile.xml -mdfp="C:/Program Files (x86)/Microchip/MPLABX/v5.30/packs/Microchip/PIC24F-GA-GB_DFP/1.1.74"/xc16
build/Opt2/production/_ext/1472/main.o(.isr.text+0x24): In function .L127': : undefined reference to _BusyUART1'
build/Opt2/production/_ext/1472/main.o(.isr.text+0x32): In function .L127': : undefined reference to _WriteUART1'
………

リンクの設定がうまくいっていないような感じがします。どこを直したらいいか教えてください。

追記
dashboardの設定
イメージ説明

Project Propertiesの設定
イメージ説明

libディレクトリ
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

mapファイルに以下の形跡が残っていました。

Microchip Technology Inc, vv1.24 (0)

Tool Name:
c:\program files (x86)\microchip\xc16\v1.24\bin\bin..\bin/elf-ld.exe

これでxc16のバージョンがv1.24とわかりました。うまく行かなかった環境ではこれがv1.41でした。

https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem
からxc16 v1.24をダウンロードしてインストール。
そしてdashboardのProjectPropertiesをいじってCompiler ToolchainをXC16(v1.24)に変更してコンパイル・ビルドに成功しました。

投稿2022/02/28 08:13

YoshinagaK

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

_BusyUART1が見つからない、と言ってるので、まずはそいつがどこにあるのかを探すことですね

投稿2022/02/25 08:22

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YoshinagaK

2022/02/26 01:30 編集

ヘッダーは C:\Program Files (x86)\Microchip\xc16\v1.41\support\peripheral_24F\uart.h C:\Program Files (x86)\Microchip\xc16\v1.41\support\peripheral_30F_24H_33F\uart.h にありました。
y_waiwai

2022/02/26 01:40

いや、ヘッダじゃなく、その関数の実体はどこにあるかってことですな
YoshinagaK

2022/02/26 01:58

ライブラリのどこかとは思うのですが、どれだかわからないでいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問