• 0

[C++] Compile error.


Question

I downloaded Borlands C++ Compiler 5.5 and when I'm about to compile a file with cpp32.exe then I get error.

My code:

  Quote
#include <stdio.h>

#include <iostream.h>

int main(void)

{

cout <<< "Hol?";

return 0;

}

The error:
  Quote
Warning W8017 c:\Program\Borland\BCC55\Include\stdlib.h 117: Redefinition of 'abs' is not identical

Why aren't the definitions identical?

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/
Share on other sites

25 answers to this question

Recommended Posts

  • 0

the problem is that your operatior is "<<<" and not the correct "<<" change that and it will fix the problem

remember these are the operators u have in c++

! ~ + - * & / %

<< >> < <= > >= == !=

^ | && || += -= *= /=

%= &= ^= |= <<= >>= , ->*

-> () [] = ++ --

new delete

there is no "<<<"

also you need a namespace

do

using namespace std;

or

useing namespace std::cout;

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1049797
Share on other sites

  • 0

did you create a project within borland? a few compilers reqiure a project to be created to store the source code in and will give errors if the source file is not contained within a project. I dont know specifically about borland though.

Your code worked in Dev-CPP on my machine with "using namespace std;" and removing one of the three "<" you had in your cout statement.

Is there a clean rebuild or rebuild all or something like that available in borland? sometimes i have noticed that if the compiler gives me an error and i fix it. then it still gives me the error because it didnt actually compile the new source file. Those options always fix it though. A wierd quirk i guess.

Edited by Iluvatar
Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1049836
Share on other sites

  • 0
  Iluvatar said:
#include <iostream> and 'using namespace std;' is really all that they would need for a simple statement like that

remember that he said with cpp32.exe, sounds like he's doing a command line compile. the paramaters need to be checked if this is the case, and that he has all the proper header files requried like iostream and such before the compile will work successfuly.

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1049859
Share on other sites

  • 0

cpp32.cfg:

-I"c:\Program\Borland\BCC55\Include"
-L"c:\Program\Borland\BCC55\lib;c:\Program\Borland\BCC55\lib\psdk"

ilink32.cfg:

-L"c:\Program\Borland\BCC55\lib;c:\Program\Borland\BCC55\lib\psdk"

Then I have Build.bat that I use when I compile:

  Quote
@c:\program\borland\bcc55\bin\cpp32 -e"test.exe" "test.c"

@pause

bcc32.exe worked just fine... but I'm trying to write some C++ now.

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1050059
Share on other sites

  • 0

bcc32 returns error too...

  Quote
Fatal F1003 c:\Program\Borland\BCC55\Include\stdcomp.h 5: Error directive: Must use C++ for STDCOMP.H

Doesn't like my file extension? Maybe it wants it to be .cpp instead of .c? :wacko:

I changed file extension and works just fine... but what does "using namespace std;" do? Where do I put it, "at the top" isn't enough for me.

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1050171
Share on other sites

  • 0

Hmm, didn't you see my code? It shows exactly where to put the using namespace std. Here it is again if you didn't see it the first time...

#include &lt;iostream&gt;
using namespace std; // &lt;-- HERE IS WHERE YOU PUT IT

int main(void)
{
   cout &lt;&lt; "Hol?";
   return 0;
}

And your extension must be .CPP for this to work, because this is C++ code. If the compiler sees .C, it'll think it's C code and you'll run into problems.

Namespaces basically avoids name conflicts. It's a C++ specific keyword. That statement tells the compiler that you're using code from the standard library (akastd>).

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1050209
Share on other sites

  • 0
  Oogle said:
Hmm, didn't you see my code? It shows exactly where to put the using namespace std. Here it is again if you didn't see it the first time...

#include &lt;iostream&gt;
using namespace std; // &lt;-- HERE IS WHERE YOU PUT IT

int main(void)
{
 ? cout &lt;&lt; "Hol?";
 ? return 0;
}

And your extension must be .CPP for this to work, because this is C++ code. If the compiler sees .C, it'll think it's C code and you'll run into problems.

Namespaces basically avoids name conflicts. It's a C++ specific keyword. That statement tells the compiler that you're using code from the standard library (astd/b>).

ah, OK.

I knew what STD ment but I had no idea what the statement did.

Thank:blush:sh:

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1050389
Share on other sites

  • 0

no,

#include "iostream.h" means its not standard while

#include <iostream.h> means it is.

" " - not

< > is

and i spent htis whole schoolyear coding console c++ apps, u dont need that namespace thing

#include &lt;iostream.h&gt;

void main()
{
   cout &lt;&lt; "Hola" &lt;&lt; endl;
}

will give hte same thing without ur special a character of course ;)

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1051097
Share on other sites

  • 0

I would like to have a fresh version of a compiler, but I ain't paying for it and I don't want some free but buggy compiler.

I don't work as a programmer and I don't sell anything that I've done so there's no reason to pay for a compiler.

All I want is a command line compiler, no fancy stuff.

I've written thousands of lines in ASM just using notepad and I'm used to that. :)

By the way, why does this code:

#include &lt;iostream.h&gt;

int main(void)
{
	std::cout &lt;&lt; "Hej hej!";
	return 0;
}

...take 112640 bytes when compiled?

I've written a program in ASM that's about 3800 lines long, graphics etc. etc. and it's a 46kB EXE?

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1051263
Share on other sites

  • 0
  Quote
and i spent htis whole schoolyear coding console c++ apps, u dont need that namespace thing
I noticed the same thing, I have never used a namespace, and everything has worked just fine.
  Quote
I don't work as a programmer and I don't sell anything that I've done so there's no reason to pay for a compiler.

Are you a student. .. . I got my from my school store for $99. That was Borland 5!

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1051983
Share on other sites

  • 0
  Chadwick 08 said:
the libraries, iostream probably calls on 3 or so more librarys which probably call on others, so in turn you can be writing a 5 line program that has 3000 lines of code from '.h' files unseen to you.

Does it include all content from all the header files? Because that doesn't make sence. :wacko:

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1052559
Share on other sites

  • 0
  Chadwick 08 said:
no,

#include "iostream.h" means its not standard while

#include <iostream.h> means it is.

" " - not

< > is

" " and < > have nothing to do with how "standard" a file is.

" " means "get the file located between the quotes". It also accepts paths relative to your project folder.

< > means "search the default include paths for this file". Paths are relative to the default include paths, which are determined by your project settings. Default means project defaults; not standard defaults.

iostream.h and iostream are 2 completely different files. Do a file search and see for yourself. Like weenur said, iostream.h is deprecated. iostream contains the implementation from the standard library.

  Quote
I noticed the same thing, I have never used a namespace, and everything has worked just fine.
All you're doing is running the risk of using a cout that's not part of the standard library. Whether or not that risk is acceptable to you fully depends on the requirements of your project. The using namespace std statement just ensures that you're using the cout from the standard library.
  Quote
I've written a program in ASM that's about 3800 lines long, graphics etc. etc. and it's a 46kB EXE?

In general, C++ gives you code maintainability and high-level abstraction at the cost of size and low-level optimization. If a smaller EXE is of the utmost importance, then you should probably stick to ASM.

  Quote
QUOTE (Chadwick 08 @ Jul 16 2003, 03:35)

the libraries, iostream probably calls on 3 or so more librarys which probably call on others, so in turn you can be writing a 5 line program that has 3000 lines of code from '.h' files unseen to you.

Does it include all content from all the header files? Because that doesn't make sence.

Header files usually take up very little space when compiled into code (unless you're inlining a lot of stuff). What takes up the bulk of the space are the libraries and object files that your program files link to. A good linker will usually leave out files that your cpp files don't call into. Also note that if you use debug libraries instead of release libraries, your executable will be much larger.

Link to comment
https://www.neowin.net/forum/topic/92199-c-compile-error/#findComment-1052979
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Thanks Nik and thanks Mind. Nik: Just on the off chance, you don't know where I could get this part at cheaper than normal price do you? I tried I few places but the I can find it at is 70GBP? Just gonna have to suck it up and buy the add-on for my PC. Thank you guys.
    • Underwhelming update. Same as 12,13,14,15. Then M3E ain't showing up until Q3
    • Smart Launcher seems a better option right now.
    • Mistral AI's new 'Magistral' models bring traceable, faster AI reasoning by Paul Hill One of Europe’s leading AI companies, Mistral, has announced the availability of its Magistral reasoning model. It comes in two versions: there is the open-source Magistral Small (24B parameters) and the enterprise-focused Magistral Medium. Magistral has been designed to better handle domain-specific tasks such as law, finance, and engineering. It shows users the model’s thought processes so that it’s more transparent, and it supports multilingual reasoning to perform better when tasked with answering non-English queries. Key features and performance Mistral compared its new models against DeepSeek R1 in various benchmarks. Ones that stood out were its results on AIME2024, which assesses reasoning capabilities. Magistral Medium scored 73.6% (90% with majority voting @64) while Small scored 70.7% (83.3% respectively). If you’ve used DeepSeek R1, you’ll have seen it thinking before answering. Magistral now does this too and can do it across multiple languages, including English, French, Spanish, German, Italian, Arabic, Russian, and Simplified Chinese. Interestingly, there’s also a Flash Answers mode that speeds up the thinking for 10x faster responses compared to competitors. Real-world applications and availability Thanks to the expertise Magistral has been trained on, organizations across multiple fields, including legal research, financial forecasting, and regulated industries, may be able to turn to Magistral for more reliable answers. Its traceable reasoning also makes it ideal in regulated fields for compliance and auditability. Magistral Small, the open-source model, is available under an Apache 2.0 license via Hugging Face. Magistral Medium is accessible through Mistral's Le Chat and via API on La Plateforme. It’ll also be arriving soon on Amazon SageMaker, IBM WatsonX, Azure AI, and Google Cloud Marketplace. The easiest way for readers to try it out is on Mistral's Le Chat platform; just head to chat.mistral.ai to get started. Source: Mistral
    • Didn't know this thanks, useful.
  • Recent Achievements

    • Week One Done
      elsa777 earned a badge
      Week One Done
    • One Month Later
      elsa777 earned a badge
      One Month Later
    • First Post
      K Dorman earned a badge
      First Post
    • Reacting Well
      rshit earned a badge
      Reacting Well
    • Reacting Well
      Alan- earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      544
    2. 2
      ATLien_0
      272
    3. 3
      +FloatingFatMan
      207
    4. 4
      +Edouard
      201
    5. 5
      snowy owl
      139
  • Tell a friend

    Love Neowin? Tell a friend!