• 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

    • PasteBar 0.7.0 by Razvan Serea PasteBar is a powerful yet free clipboard manager that revolutionizes how you copy, organize, and reuse information. Packed with smart features, it enhances productivity and simplifies your workflow by minimizing repetitive copy-paste tasks—so you can work faster and smarter. PasteBar offers powerful clipboard management with unlimited history, searchable copy records, and note support, making it easy to retrieve past clips. You can save and organize clips into custom collections, tabs, or boards for quick access through intuitive paste menus. Privacy is a priority, with local storage, passcode protection, and PIN-locked collections ensuring your data stays secure. The app also supports custom storage locations, giving you full control over where your clipboard history is saved. Beyond basic clipboard functions, PasteBar includes smart features like support for text, images, files, and code snippets—complete with syntax highlighting and Markdown formatting. A global search function, instant pasting, and dark theme enhance usability, while customization options let you tailor hotkeys, tray behavior, and text filters. Cross-platform compatibility (macOS & Windows) ensures seamless workflow integration, with added tools for web scraping, API data extraction, and multi-language support. Backup and restore capabilities provide extra peace of mind, making PasteBar a versatile productivity tool. PasteBar 0.7.0 changelog: Added backup and restore database and images Added custom data location to store application data in a folder of your choice instead of the default location Added keyboard shortcuts to improve navigation efficiency within the application Added long press on clip to activate clips organize Added "Trim Spaces" option for clips and "Auto Trim Spaces" option for History Capture Added Quick history window user options Added option to disable capturing and storing images from clipboard Implemented clipboard history filtering based on text length limits Added support for setting hotkeys with up to 3-key combinations Fixed update history items in quick paste window after delete operation in main window Added user setting for single-click keyboard focus in history Refactored terminology for history window split to open Updated to React 19 and React Compiler Auto-activate search in quick paste window when typing any letter or number Added single-click copy/paste option in user preferences Added persistent note icons for clips with descriptions Added detect and select language modal on first app run Fixed refresh native menu on history items delete Added history item preview max lines user setting Added protected collection with PIN access Added special copy/paste for history items context menu and settings Added global templates in user preferences for saved clips Press Delete key to delete single or multiple items with confirmation on second press Added customizable tray icon behavior on Windows as user settings Added user preference to copy only menu items to clipboard without auto-pasting Fixed enhance value preview logic to fix text overflow Updated French language translation from Jean-Michel Robert Added deleting menu folders with children by moving submenus up one level Fixed user preferences UI color bug for languages Added settings to preserve pinned and starred items when clearing clipboard history Added option "Show Always on Top" for main window Added support for notes matching in global search Added Turkish language translation by AlijonMurodov Updated Chinese translation by katelya77 Download: PasteBar | Portable | ~30.0 MB (Open Source) Download: PasteBar ARM64 | Portable ARM64 Links: PasteBar Website | Screenshot | MS Store Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Well, it seems version 4.9 doesn't work well at least when trying to make a WinToGo USB. It ends very fast with an error. Had to use 4.8 instead.
    • Hundreds of printer models with weak password algorithms exposed, no firmware patch possible by Usama Jawad Many people don't think or care about it, but printer security is a pretty important avenue when it comes to evaluating your cybersecurity posture. Last month, it was found that the companion software for Procolored printers was distributing malware. Now, it has been revealed that hundreds of printer models all over the globe are susceptible to attacks targeting their admin credentials. Bleeping Computer has reported that CVE-2024-51978 is a one of the eight printer vulnerabilities recently discovered by security researchers. Combined, these allow authenticated and unauthenticated attackers to discover the default admin password, perform remote code execution (RCE), crash the printer, and leak other sensitive information. Severity ratings go from a score of 5.3 (medium) to 9.8 (critical), indicating that these are pretty severe vulnerabilities. The most dangerous vulnerability in there exposes the default admin password, and primarily affects Brother printers. This is because Brother utilizes a rather weak password generation algorithm that is highly dependent upon the device's serial number and a static salt table. Analysis of the code revealed that the first 16 characters of the serial number are appended with eight bytes from a static salt table, with the results being hashed with SHA256 and Base64-encoded. Finally, the first eight characters are then taken and some of them are replaced with special characters to form the password. The static nature of the password generation algorithm means that an attacker can chain various existing vulnerabilities to get access to your serial number and eventually your default admin password. It is important to note that not all printer models are affected by all of these flaws, but the default admin password exposure does affect 695 models. The breakdown for the number of printer model affected by the eight vulnerabilities is as follows: Brother: 689 Fujifilm: 46 Konica Minolta: 6 Ricoh: 5 Toshiba: 2 Brother has informed the security researchers that it cannot fully remediate the password generation vulnerability through a firmware patch. It can only fix the issue in its next printer models by patching the problem during the manufacturing process. This makes it crucial for customers of affected models to change their default admin password as soon as possible, which is good practice anyway.
    • Win11 being 2.3x faster than Win10, so that means without changing any hardware, Doom Eternal will run at over 2x the framerate? Or that any computational stuff will be done 2x faster just because of OS? Press X for doubt. I wonder where they pulled these metrics out of coz they make no sense. Not to mention my laptop with Ryzen 2500U that used to run Windows 11 simply CAN'T anymore because of BS arbitrary requirements Microsoft has imposed in Win11 that weren't there intiially. So, that laptop is now running Ubuntu or Fedora and runs at 1000000000000000000000x faster speeds because Windows 11 just doesn't work at all so it gets DNF.
    • “Ask Photos” is coming to more Google Photos users in the US by Paul Hill Google has announced several improvements to a Gemini-powered Google Photos feature called Ask Photos. The feature launched last year in early access and it was great for longer search requests, however, when users typed “Dog” or “Beach” looking for those types of pictures, Ask Photos underperformed. Now, Google has addressed this and is bringing the feature to more eligible users in the United States. The search giant said that users enjoyed asking queries such as “suggest photos that’d make great phone backgrounds” or “what did I eat on my trip to Barcelona?” and getting Gemini-powered responses to these complex questions. Unfortunately, simple searches like “beach” or “dogs” were generating less than optimal results and people complained. To remedy the situation, Google has brought the best of Google Photos’ classic search feature to Ask Photos to improve latency. Easy, short requests will be dealt with by the old search mechanism and when you ask complex queries, it will switch over to the Gemini-powered search results. Now that Google has addressed this main issue of simple searches by integrated functionality from the previous search model, the company feels more confident to open up beyond early access and deliver it to more users in the United States. To be eligible, you must be 18+, be in the US, have your Google Account language set to English (United States), and have Face Groups turned on. This feature is only available on Android and iOS. To start using it, open Google Photos and tap on Ask at the bottom, then press Try now and agree to the terms. If you do not see the Ask button, it means you’re not yet eligible. The feature also can’t be used on computers yet. Hopefully, Google will quickly expand this feature outside the US so that international users can try it out too.
  • Recent Achievements

    • Week One Done
      suprememobiles earned a badge
      Week One Done
    • Week One Done
      Marites earned a badge
      Week One Done
    • One Year In
      runge100 earned a badge
      One Year In
    • One Month Later
      runge100 earned a badge
      One Month Later
    • One Month Later
      jfam earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      567
    2. 2
      +FloatingFatMan
      177
    3. 3
      ATLien_0
      169
    4. 4
      Michael Scrip
      127
    5. 5
      Xenon
      119
  • Tell a friend

    Love Neowin? Tell a friend!