Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
New Contributor
DigitalMuffin
Posts: 5
Registered: ‎09-18-2012
My Device: BlackBerry PlayBook
Accepted Solution

Internal Builder is used for build - Build error (null)

Hi all,

 

First things first... This is the IDE I'm using:

 

QNX Momentics IDE for BlackBerry Native SDK for Tablet OS

Version: 2.0.0

Build id: 201202171813

 

I imported an assembly file from another project I worked on (.s extension). I started getting a linker error when I referenced one of the functions in the file. The project was picking up the declaration of the function in the header file (.h), but not the definition in the (.s) file.

 

The first thing I found was an article on how the IDE requires the .s extension to be upper case. I changed the file extension to upper case. In addition, I also did the following to have lower case extensions recognised and treated as assembly files:

 

    Project -> Properties -> C/C++General -> File Types ->New

    Pattern = *.s

    Type = Assembly Source File

 

After noticing that there were no compilation errors, but that the linker still couldn't find the function I checked for the object file (.o), and sure enough no file had been generated.

 

I then tried to build just the assembly file (right click -> Build Selected File(s)).

 

This is what I get in Console:

Rebuilding selected file(s)

**** Internal Builder is used for build                          ****

Build error

(null)

 

Adding #error preprocessor defines throws no error. Adding undefined #define tags around code doesn't trigger any kind of syntax highlighting in the editor as it does in a c/cpp/h file.

 

These are my QCC Assembler settings (Project -> Properties -> C/C++ Build -> Settings -> QCC Assembler):

 

Command: -qcc

All options: -V4.4.2,gcc_ntoarmv7le_cpp -w1 -c -DUSING_GL11=1 -g

 

In case anyone asks, I can't post the source for this (contractual agreement).

 

Is there anything that anyone could suggest to get this working? Has anyone had a similar issue and resolved it?

 

Cheers,

G

Please use plain text.
Developer
BGmot
Posts: 1,068
Registered: ‎11-24-2011
My Device: PlayBook

Re: Internal Builder is used for build - Build error (null)

Did you put this .s file in src folder?

Please use plain text.
New Contributor
DigitalMuffin
Posts: 5
Registered: ‎09-18-2012
My Device: BlackBerry PlayBook

Re: Internal Builder is used for build - Build error (null)

Yep, it's in the "src" folder in the project. :smileyhappy:

Please use plain text.
New Contributor
DigitalMuffin
Posts: 5
Registered: ‎09-18-2012
My Device: BlackBerry PlayBook

Re: Internal Builder is used for build - Build error (null)

Still no luck with this. I've just had it happen when trying to compile a .cpp file. It's the first time that I've seen it happen to a .cpp.

Please use plain text.
BlackBerry Development Advisor (Retired)
mgoulet
Posts: 329
Registered: ‎05-07-2012
My Device: BB Alpha

Re: Internal Builder is used for build - Build error (null)

Hi,

 

I've never worked with such assembly files... Have you tried other .S files that you know work from other sources?

 

Martin

Please use plain text.
New Contributor
DigitalMuffin
Posts: 5
Registered: ‎09-18-2012
My Device: BlackBerry PlayBook

Re: Internal Builder is used for build - Build error (null)

[ Edited ]

I actually believe it's this bug:
http://stackoverflow.com/questions/5209388/what-does-the-push-pin-icon-adornment-mean-in-eclipse-cdt

 

I noticed that the .cpp file has an "adornment" on the file icon. It looks like a wrench or key. It appears to be a bug in Momentics/Eclipse that causes the compiler to fall over with an unspecified error (null). I renamed the .s file to .S and also renamed the .cpp file. I'm going to hazard a guess that renaming the files was the cause.

 

The workaround for this:

 

  • Duplicate the file in another location and delete the original file from the project (right click -> "Delete").
  • Copy the file back into the project directory where it used to be in Finder (or Windows Explorer on Windows).
  • Refresh the project (Right click project -> "Refresh").
Please use plain text.