Amiga vbcc support

已回答

I know this is not going to be a common issue, so if you could help myself fix this using the current tools. I am trying to create a cross compile tool chain to code for the Amiga. Using vbcc as the compiler.

I have created a makefile project with a compiler.yaml - files included.

The code compiles but the clion ide is unable to find any reference to any included types and files. At the start of main.c are the headers, all not found - and hence the containing types.

#include <intuition/intuition.h>
#include <proto/dos.h>
#include <proto/intuition.h>

Any help would be useful.

All files have been attached.

My compiler directory structure is as follows, with environment variable VBCC pointing to the base of this.
├── bin
├── NDK_3.2
│   ├── Include_H
│   ├── Include_I
│   ├── lib
└── targets
   ├── m68k-amigaos
   └── m68k-kick13

Upload id: 2026_09_24_QMsHRgt687RM1nLS2Qf1Hc (files: Makefile and 2 more)
Not everyone will see these files, so, Makefile:

VBCC ?= /home/stu/.local/share/vbcc
NDK_INC ?= $(VBCC)NDK_3.2/Include_H
CC = $(VBCC)bin/vc
CFLAGS = -c99 +kick13 -I$(NDK_INC) -I$(VBCC)targets/m68k-amigaos/include
LDFLAGS = -lamiga -lauto
SRCS = main.c
VPATH = $(NDK_INC)
.INCLUDE_DIRS = $(NDK_INC)Include_H $(VBCC)targets/m68k-amigaos/include

all:
    $(CC) $(CFLAGS) $(LDFLAGS) main.c -o build/window

clean:
    rm build/window


# vc +kick13 -c99 -I$NDK_INC -I$VBCC/targets/m68k-amigaos/include  main.c -lamiga -lauto -o window

and compiler.yaml:
compilers:
 - description: Amiga vbcc compiler
   match-sources: ".*\\.c"
   match-language: C
   match-compiler-exe: "(.*/)?vc(.exe)?"
   code-insight-target-name: m68k
   include-dirs:
     - "${compiler-exe-dir}/../targets/m68k-amigaos/include"
     - "${compiler-exe-dir}/../targets/m68k-kick13/include"
     - "${compiler-exe-dir}/../NDK_3.2/Include_H"
   defines:
     __VBCC__: ""
     __AMIGA__: ""
     AMIGA: ""
 

0

Hello!

Please provide the following additional information:

  1. Do Tools | Makefile | Clean and Reload Makefile Project, and attach a screenshot of the Build tool window.
  2. Open main.c in the editor, place the caret in the code, do Help | Find Action, search for the Show Compiler Info action there, select it, and then provide the results.
  3. While main.c is opened in the editor and the caret is in the code, capture a screenshot showing the Resolve Context widget in the Status bar (bottom-right corner of CLion) and provide it.
    Here are the examples of this widget:

0

Thank you for your response.

1. The app builds, and I can run the produced executable in an Amiga emulator.

2. Show Compiler Info shows:

Compiler info for 'main.c' in configuration 'main.c' for language C

Compiler kind: Custom Defined Compiler path: /home/stu/.local/share/vbcc/bin/vc
Custom Compiler: Amiga vbcc compiler

Compiler switches:
	-c99
	-I/home/stu/.local/share/vbcc/NDK_3.2/
	-I/home/stu/.local/share/vbcc/targets/m68k-amigaos/include
	-lamiga
	-lauto
	main.c
	-o
	build/window

Compiler info:

Defines:
#define __VBCC__
#define __AMIGA__
#define AMIGA

Features:
	CLANG_TARGET=m68k
	CXX_CONSTEXPR=false
	CXX_USER_LITERALS=false
	CXX_OVERRIDE_CONTROL=false
	CXX_GENERIC_LAMBDAS=false
	C_STATIC_ASSERT=false
	C_AUTO_TYPE=false
	CXX_EXCEPTIONS=false
	CXX_GENERALIZED_INITIALIZERS=false
	CXX_AUTO_TYPE=false
	CXX_NULLPTR=false
	CXX_RETURN_TYPE_DEDUCTION=false
	CXX_RAW_STRING_LITERALS=false
	C_NULLPTR=false
	C_CONSTEXPR=false
	CXX_BINARY_LITERALS=false
	CXX_NONSTATIC_MEMBER_INIT=false

Implicit includes:


Header Search paths:
	Pointer: file:///home/stu/.local/share/vbcc/NDK_3.2
	Pointer: file:///home/stu/.local/share/vbcc/targets/m68k-amigaos/include
	Pointer: file:///home/stu/.local/share/vbcc/targets/m68k-amigaos/include
	Pointer: file:///home/stu/.local/share/vbcc/targets/m68k-kick13/include
	Pointer: file:///home/stu/.local/share/vbcc/NDK_3.2/Include_H

The Header Search paths do resolve to the header files locations I am using/wanting to use.

3. I can see there is an issue here: 

How do I set the context, please?

0

It's not possible to set the context manually; CLion needs to identify it.

Please try the following:

  1. Add __STDC_VERSION__: "199901L" to the defines section in your compiler.yaml.
  2. Save the changes.
  3. Invalidate all caches and restart CLion: File | Invalidate Caches... > select all options > Invalidate and Restart.

Is it still <no context> after that? Or is the context found in this case?

1

Thank you Anna, that has fixed my issue.

0

请先登录再写评论。