• 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

    • We went from a Latitude 7450 to Dell Pro 14 Plus PB14250
    • EA Sports UFC 5 is free-to-play on Xbox Series X|S this weekend by Pulasthi Ariyasinghe Every Thursday Microsoft brings in a fresh slate of games for Xbox gamers to try over the weekend as a part of its Free Play Days promotion. The latest refresh that arrived today only revealed a single title for the weekend, and that's EA Sports UFC 5. This is a special occasion as well. Unlike the standard events, this one does not require any tier of Game Pass to jump in. All Xbox Series X|S owners can play the game over the weekend, even if they do not have a Core subscription. As always, any progress made during the weekend also carries over automatically if you decide to purchase the game afterward. Coming in from EA Sports, UFC 5 is the latest entry in the long-running mixed martial arts fighting games. This installment landed in 2023 for the latest generation consoles. Built on DICE's Frostbite Engine for the first time, the title event received an M rating by the ESRB for its realistic injury system, as EA wanted to make a more authentic experience akin to the real-world sport. The damage system, dubbed the Real Impact System, involves depicting blood and sweat on fighters as well as facial injuries. Having injuries like bruised eyes or broken noses can even affect the performance of a fighter due to impaired vision or breathing difficulty. A doctor stoppage may even happen if the injuries become too severe. UFC 5 offers a single-player career mode to become the top-ranked fighter, online modes for competitive action, and special events tied to real-world fights. Here are the store links for the game: UFC 5 - $27.99 (Xbox Series X|S) UFC 5 Deluxe Edition - $31.99 (Xbox Series X|S) UFC 5 Ultimate Edition - $89.99 (Xbox Series X|S) This Free Play Days promotion will end on Sunday, June 29, at 11:59 pm PT. Following this, expect another round of games to enter the program next Thursday, July 3.
    • Windows 11 KB5060826 optional update brings better Setup, new data migration tool, more by Sayan Sen Alongside KB5060829 for Windows 11 24H2, Microsoft has also released its C-release non-security preview update for Windows 11 23H2 and 22H2 today. The new update is rolling out under KB5060826 (builds 22621.5549 and 22631.5549). KB5060826 brings an upgraded Setup which will now let admins choose whether to deploy critical updates during the OOBE (the initial out-of-box experience setup on Windows). Alongside that, it also adds the new PC migration experience on Windows Backup, as well as the default app changes related to the European Economic Area (EEA) region. The full changelog is given below: First up we have the changes and improvements for Gradual Rollout: [App defaults] New! We are rolling out some small changes in the European Economic Area (EEA) region for default browsers through the Set default button in Settings > Apps > Default apps: Additional file and link types will be set for the new default browser, if it registers them. The new default browser will be pinned to the Taskbar and Start menu unless you choose not to pin it by clearing the checkboxes. There is now a separate one-click button for browsers to change your .pdf default, if the browser registers for the .pdf file type. [PC Migration] New! The PC-to-PC migration experience in Windows is starting to roll out. You’ll begin to see the landing and the pairing page in the Windows Backup app, giving you a first look at what’s coming. In the full experience, you’ll be able to transfer files and settings from an old PC to a new one during setup. Support for this feature during PC setup will arrive in a future update. The rollout is being introduced in phases to support a smooth experience. [Windows Share] ​​​​​​​New! When you share links or web content using the Windows share window, you will see a visual preview for that content. Up next, we have Normal Rollout features: [Windows Setup] New! Admins can configure whether a new device gets critical updates during the out-of-box experience (OOBE). The update has a single known issue related to Noto fonts. You can view the support article here on Microsoft's official website. The update can be obtained by clicking on "Check for optional updates" inside Windows Update. You can also download it manually from Microsoft Update Catalog website.
    • American? Yer whole 120v limitation is madness.  You can still get low powered pcs , nice, that'll do the job 
    • People want a resizable taskbar, not tiny icons on a fat one. Microsoft, you've done it again.
  • Recent Achievements

    • One Month Later
      jfam earned a badge
      One Month Later
    • First Post
      TheRingmaster earned a badge
      First Post
    • Conversation Starter
      Kavin25 earned a badge
      Conversation Starter
    • One Month Later
      Leonard grant earned a badge
      One Month Later
    • Week One Done
      pcdoctorsnet earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      571
    2. 2
      ATLien_0
      186
    3. 3
      +FloatingFatMan
      177
    4. 4
      Michael Scrip
      144
    5. 5
      Xenon
      116
  • Tell a friend

    Love Neowin? Tell a friend!