0

コンパイラのバージョン: TI v15.12.1.LTS

ファミリ : アーム

バリエーション : ティバ TM4C123GH6PM

main.c で C++ クラスをビルドしようとすると、以下のエラーが発生します

**** Build of configuration Debug__TI for project Lab1 ****

"C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all 
'Building file: ../Generic.cpp'
'Invoking: ARM Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="Generic.d"  "../Generic.cpp"
'Finished building: ../Generic.cpp'
' '
'Building file: ../main.c'
'Invoking: ARM Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="main.d"  "../main.c"

>> Compilation failure
subdir_rules.mk:14: recipe for target 'main.obj' failed
"..\Generic.h", line 11: error #20: identifier "class" is undefined
"..\Generic.h", line 11: error #66: expected a ";"
"..\Generic.h", line 15: warning #12-D: parsing restarts here after previous syntax error
"../main.c", line 6: error #20: identifier "generic" is undefined
3 errors detected in the compilation of "../main.c".
gmake: *** [main.obj] Error 1
'Building file: ../tm4c123gh6pm_startup_ccs.c'
'Invoking: ARM Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/bin/armcl" -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-arm_15.12.1.LTS/include" -g --gcc --define=ccs="ccs" --define=PART_TM4C123GH6PM --diag_wrap=off --diag_warning=225 --display_error_number --abi=eabi --preproc_with_compile --preproc_dependency="tm4c123gh6pm_startup_ccs.d"  "../tm4c123gh6pm_startup_ccs.c"
'Finished building: ../tm4c123gh6pm_startup_ccs.c'
' '
gmake: Target 'all' not remade because of errors.

**** Build Finished ****

クラスの詳細は次のとおりです。

main.c

#include "Generic.h"

int main(void) {

    Generic *generic;
    return 0;
}

Generic.cpp

#include "Generic.h"

Generic::Generic() {
    // TODO Auto-generated constructor stub

}

Generic::~Generic() {
    // TODO Auto-generated destructor stub
}

Generic.h

#ifndef GENERIC_H_
#define GENERIC_H_

class Generic {
public:
    Generic();
    virtual ~Generic();
};

#endif /* GENERIC_H_ */

main.c を main.cpp にする必要があるかどうかはわかりません。その場合、main.cpp 用にどの make ファイルを更新する必要がありますか?

ARM の C++ コンパイルに関するヘルプ

4

1 に答える 1

0

TIフォーラムから:

デフォルトでは、TI ARM コンパイラはファイル拡張子を使用して、ソース コードを C または C++ としてコンパイルするかどうかを決定します。これが CCS プロジェクトの場合、main.c の名前を main.cpp に変更するだけで、CCS で生成された makefile が自動的に更新されます。

これで動作します。ありがとう。

于 2016-05-31T08:34:52.303 に答える