Programming :: Get Ride Unwanted Compiler / Linker Output
Jul 18, 2011
I am using g++ 4.5.2 I copied and tried a piece simple (Making a Class Writealbe to a Stream) program, from page 363 of book(C++ cookbook), Example 10-6 your can download and test by yourself [URL]
I am using a arm compiler to build my program but getting following compiler error at the end - init.c.text+0x2c): undefined reference to '__libc_csu_fini' init.c.text+0x34): undefined reference to '__libc_csu_init'
I am trying to recompile a large open source project with the Nvidia Cuda Compiler: 'nvcc' [URL].. nvcc supports all the compile flags that gcc does but not all of the linking options. This shouldn't be a problem however as nvcc generates object files that are compatible with gcc and I should hence be able to compile with nvcc and then link with gcc (linking against the CUDA library).
To compile with nvcc I use: ./configure CC=nvcc
Which successfully creates make files that se nvcc to compile. But the Configuration script does not seem to honor LD=gcc in the same way, ie: ./configure CC=nvcc LD=gcc still tries to link everything with nvcc which promptly fails because nvcc does not support the option '-soname' without which the project will not link correctly. What am I doing wrong? How can tell the config script to link with gcc?
I am trying to learn C Programing and I'm having trouble on the output of my script. my script should count the characters in input but it doesn't give me any numbers.. here's my program code:
How to remove unwanted output that comes from executing system api?
for eg:when i execute system("telnet 127.0.0.1") i want the output to start with login and then password and then directly the command prompt,how can i remove the output that gets generated before showing the prompt?
I need to compile a program and make it portable to other computers, but it needs some external libraries and I don't want them to be linked dynamically, I would like to compile them as one single executable or at least compile them in the same directory as the main output files. The program is sphinx>, it has its own configure and make scripts. I know I can run g++ with the -static flag, but I don't know how to do this with make or configure. This is the ./configure --help output
I did a ./configure and make and got this returned about 1/2 hr later:
Code: undefined reference to `glDisable' undefined reference to `glDisable' undefined reference to `glutKeyboardFunc' undefined reference to `glutSpecialFunc' undefined reference to `glReshapeFunc'
And the oddest part is.... I passed --disable-gl to configure!
I am trying to compile a software using a provided sdk. I suspect that the sdk has some mismatch of the platform library, but I am not sure.
The error I got is
Code:
The libidata.so.42 is there in that folder. I guess the file might be in a big endian. Is there a way to check if the libidata.so.42 i have might be a big endian format, rather than little endian?
If my guess is incorrect, This is a c++ code on fedora x86 machine.
Recently I have downloaded TBB and I want to run a program using its libraries. But I encountered the following error: Linker: fatal error LNK1104: cannot open file 'tbb_debug.lib'
I downloaded Go-OpenOffice from SlackBuilds.org, but I can't build it. make terminates with configure error: checking for C compiler default output file name. configure: error: in `/tmp/SBo/ooo-build-3.1.1.5': configure: error: C compiler cannot create executables See `config.log' for more details.
(I can't find config.log anywhere) I use a quite 'light' installation (no xap, ap), and I suspect that I have some unmet dependencies, but the error message provides no information about what software is needed (I've installed all dependencies listed on SlackBuilds.org). I'm using Slackware64-13 with Xfce
Currently, I'm working on personal project. and I'm kinda stuck. What I want to do is that open a file, and edit that file (deleting unwanted characters). The problem arises after I deleted unwanted characters, the file still has the same length of the original one. Let's assume that we have a file with "1234" in it. I deleted "3" ( I overwrite "\0" ) so now when I check the file, it's 124. But when I check the length, the both have the same size as 4
Here is an example source code int length, length2; num = open("a.dat", 2) length = lseek(num, 0, 2); // Initial length lseek(num, 2, 0); // editing write(num, "\0", 1); length2 = lseek(num, 0, 2); // Final length close(num);
When I print those values those are exactly the same. Length2 should be one less than length, but the both are 4. What's wrong in m code? Am I supposed to use different character rather than "\0"?
Often in bash we read lines from stdin in a loop and implicitly discard the remaining stdin by terminating the loop. Is it possible to discard it without terminating the loop? It could lead to smaller code.
Here's an example which uses two loops and below is the same algorithm assuming unwanted stdin can be discarded
I would like to know how I can get the ouput from the following dmidecode command in example 1 to look like example 2 without having to grep -v all the unwanted lines.Is there a way in awk or sed?Example 1
Code: Processor Information Socket Designation: Socket 1 CPU 1
I am facing some problems when i am trying to link using g++. The linker error text is "undefined reference to `std::vector<std::string, std::allocator<std::string> >::end()'"
I installed Fedora on my machine. I'm very new at Linux but would like to start coding in C++. I would like to know the steps to write and compile a Hello World program using C++ in Linux. (I've been a Microsoft person all my life).
I'm reading about GNU CPP(GNU C preprocessor). In the CPP manual -> 1.1 Character sets:
Code: After preprocessing is complete, string and character constants are converted again, into the execution character set. This character set is under control of the user; the default is UTF-8, matching the source character set. I think "under control of the user" means to use the option -fexec-charset=, right? And in the above part, it says pretty clear: "After preprocessing is complete", so the job -- "string and character constants are converted again, into the execution character set" -- should be done by the C compiler(compilation proper), not GNU CPP. Then the option -fexec-charset= should be an option controlling the C compiler, not the preprocessor. But in the GCC manual, this option is listed in the "3.11 Options Controlling the Preprocessor". I don't understand this, If this option is an option controlling the preprocessor, it conflicts with the CPP manual. How to understand this?
I have a large existing codebase that all compiles under Ubuntu 8.04 with g++ using Scons. I've been given the task of getting it to compile for Arm9 running uclinux. I have a arm-elf-g++ compiler that I need to use instead of the gcc version. I ended up borking my /usr/lib/scons/SCons/Tool/g++.py file to use arm-elf-g++ instead of g++, but I know that this is not correct, as I have to go edit that file every time I change compilers.
These are the 2 lines I switch out: Code: compilers = ['arm-elf-g++'] #compilers = ['g++']
I simply can not find anywhere in the scons documentation that indicates how to tell it to use a different compiler. It seems that it would go under "Environment" but beyond that I'm lost. The CPPPATH variable seems like it only tells scons where to find #include files. I suppose I could rename arm-elf-g++ to g++ and just set my path to find that one first, but that seems like a bit of a hack as well. It would also break other things on my machine.
I'm trying to figure out how pthreads are mapped from the compiler to the Linux kernel. The pthread prototypes are found in a compiler header file (pthread.h), yet the kernel would be responsible for scheduling the threads. So, how does the compiler resolve the pthread symbols at compile time?
I am using makefile to complile all C Programming files. But certain files are not getting compiled and hence its object file is not getting generated. This is happening due to files haven't been modified for a long time. It seems that compiler knows that its object file is there hence no need to complie it actually it is not.
How can I disable structure alignment feature of gcc using command-line options ?I recently migrated to 64-bit OS, and doubt that I might be experiencing a structure alignment problem due to the new 64-bit architecture.I checked the sizes of the same C-style struct in both x86 and x86_64, and found out that they appear to be different by 20 bytes.I am not sure if this is due to structure alignment or the differences in data type lengths between two platforms.Hence, I will first disable the structure alignment feature, and then check the struct sizes again.