Search Results

Search found 2303 results on 93 pages for 'llvm gcc'.

Page 72/93 | < Previous Page | 68 69 70 71 72 73 74 75 76 77 78 79  | Next Page >

  • Problems with variadic macros in C

    - by imikedaman
    Hi, I'm having a problem with optional arguments in #define statements in C, or more specifically with gcc 4.2: bool func1(bool tmp) { return false; } void func2(bool tmp, bool tmp2) {} #define CALL(func, tmp, ...) func(tmp, ##__VA_ARGS__) int main() { // this compiles CALL(func2, CALL(func1, false), false); // this fails with: Implicit declaration of function 'CALL' CALL(func2, false, CALL(func1, false)); } That's obviously a contrived example, but does show the problem. Does anyone know how I can get the optional arguments to "resolve" correctly? Additional information: If I remove the ## before _VA_ARGS_, and do something like this: bool func2(bool tmp, bool tmp2) { return false; } #define CALL(func, tmp, ...) func(tmp, __VA_ARGS__) int main() { CALL(func2, false, CALL(func2, false, false)); } That compiles, but it no longer works with zero arguments since it would resolve to func(tmp, )

    Read the article

  • gdb + nasm debug info not being created

    - by cpowel2
    I am relatively new to assembly language programming and am trying to debug a small .asm file that I wrote in Ubuntu. I am however running into an issue where my symbol table is not being loaded and was looking for some help. I am compiling my program as follows. nasm -f elf -g -F dwarf bs.asm gcc -m32 -g bs.o -o bs which produces the executable bs when I run gdb bs I get a message that says no debugging symbols and when I try to set a break point by b main it says function not defined even though its in the file and I can run it using ./bs I read a couple posts that suggested adding the -F dwarf when assembling but that didn't help if anyone has any insight I would greatly appreciated your input. Thanks in advance

    Read the article

  • Delay-Load equivalent in unix based systems

    - by saran
    What is the delay load equivalent in unix based system. I have a code foo.cpp, While compiling with gcc I link it to shared objects(totally three .so files are there.).Each of the .so file for different option. ./foo -v needs libversion.so ./foo -update needs libupdate.so I need the symbol for those libraries should be resolved only at the run time. ./foo -v should not break even if libupdate.so library is not there. It is working in windows using the delay load option(in properties of dll). What is its equivalent in unix systems. Will '-lazy' option does the same in UNIX?. If so,Where to include this option? (in makefile or with linker ld). I am not good in unix. Please help me.. Thanks in advance.

    Read the article

  • Compiling C-dll for Python OR SWIG-module creation, how to continue ??

    - by ljuju
    I reference this file "kbdext.c" and its headerfile listed on http://www.docdroppers.org/wiki/index.php?title=Writing_Keyloggers (the listings are at the bottom). I've been trying to compile this into a dll for use in Python or Visual Basic, but have not succeeded. I'm not familiar with C or GCC to sort out the problems or do the dll compile correctly. (I also get an error about snprintf not being declared when doing a regular compile of all the files). What are the steps I should do to make all functions available for other languages and external apps? Or is it perhaps easier to use SWIG and make a python module, instead of compiling a DLL?

    Read the article

  • Forward declaring an enum in c++

    - by szevvy
    Hi guys, I'm trying to do something like the following: enum E; void Foo(E e); enum E {A, B, C}; which the compiler rejects. I've had a quick look on Google and the consensus seems to be "you can't do it", but I can't understand why. Can anyone explain? Many thanks. Clarification 2: I'm doing this as I have private methods in a class that take said enum, and I do not want the enum's values exposed - so, for example, I do not want anyone to know that E is defined as enum E { FUNCTIONALITY_NORMAL, FUNCTIONALITY_RESTRICTED, FUNCTIONALITY_FOR_PROJECT_X } as project X is not something I want my users to know about. So, I wanted to forward declare the enum so I could put the private methods in the header file, declare the enum internally in the cpp, and distribute the built library file and header to people. As for the compiler - it's GCC.

    Read the article

  • C++0x optimizing compiler quality

    - by aaa
    hello. I do some heavy numbercrunching and for me floating-point performance is very important. I like performance of Intel compiler very much and quite content with quality of assembly it produces. I am thinking at some point to try C++0x mainly for sugar parts, like auto, initializer list, etc, but also lambdas. at this point I use those features in regular C++ by the means of boost. How good of assembly code do compilers C++0x generate? specifically Intel and gcc compilers. Do they produce SSE code? is performance comparable to C++? are there any benchmarks? My Google search did not reveal much. Thank you.

    Read the article

  • C++ - defining static const integer members in class definition

    - by HighCommander4
    My understanding is that C++ allows static const members to be defined inside a class so long as it's an integer type. Why, then, does the following code give me a linker error? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout << test::N << "\n"; std::min(9, test::N); } The error I get is: test.cpp:(.text+0x130): undefined reference to `test::N' collect2: ld returned 1 exit status Interestingly, if I comment out the call to std::min, the code compiles and links just fine (even though test::N is also referenced on the previous line). Any idea as to what's going on? My compiler is gcc 4.4 on Linux.

    Read the article

  • C++ performance, optimizing compiler, empty function in .cpp

    - by Dodo
    I've a very basic class, name it Basic, used in nearly all other files in a bigger project. In some cases, there needs to be debug output, but in release mode, this should not be enabled and be a NOOP. Currently there is a define in the header, which switches a makro on or off, depending on the setting. So this is definetely a NOOP, when switched off. I'm wondering, if I have the following code, if a compiler (MSVS / gcc) is able to optimize out the function call, so that it is again a NOOP. (By doing that, the switch could be in the .cpp and switching will be much faster, compile/link time wise). --Header-- void printDebug(const Basic* p); class Basic { Basic() { simpleSetupCode; // this should be a NOOP in release, // but constructor could be inlined printDebug(this); } }; --Source-- // PRINT_DEBUG defined somewhere else or here #if PRINT_DEBUG void printDebug(const Basic* p) { // Lengthy debug print } #else void printDebug(const Basic* p) {} #endif

    Read the article

  • What causes Python "Interpreter not Initialized" error?

    - by ?????
    I'm now on my third full day this week of trying to get OpenCV to work with Python. (I have been trying on and off for the past 6 months). I get this error Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information. dlopen("/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so", 2); import readline # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/readline.so >>> import cv dlopen("./cv.so", 2); Fatal Python error: Interpreter not initialized (version mismatch?) and then it crashes (core dumps). python -v gives nothing after the dlopen. Any ideas from anyone who actually knows about this error?

    Read the article

  • C++ and preprocessor macro gotcha

    - by aaa
    hello. Appologies for yet another gotcha question. Can you figure out what is wrong with the statement below? gcc error states: "type name declared as function returning array". #define MACRO(a) (a)[1] class index { typedef int index_type[2]; index_type& operator[](int i); }; int k = 0; int i = MACRO(index()[k]); ps: is such questions are deemed too annoying, I am going to stop.

    Read the article

  • Using concurrently 2 versions of boost

    - by idimba
    I'm using RHEL 5.3, which is shipped with gcc 4.1.2 and boost 1.33. There're some features I want, that are missing in the boost 1.33. Therefore the thought was to upgrade to fresh boost release 1.43. Is it possible to use concurrently some header-only library(s) from boost 1.43 and the rest from 1.33? For example I want to use unorded_map, which is missing in boost 1.33. Is it possible to use concurrently binary boost libraries from different releases?

    Read the article

  • Fast comparison of char arrays?

    - by StackedCrooked
    I'm currently working in a codebase where IPv4 addresses are represented as pointers to u_int8. The equality operator is implemented like this: bool Ipv4Address::operator==(const u_int8 * inAddress) const { return (*(u_int32*) this->myBytes == *(u_int32*) inAddress); } This is probably the fasted solution, but it causes the GCC compiler warning: ipv4address.cpp:65: warning: dereferencing type-punned pointer will break strict-aliasing rules How can I rewrite the comparison correctly without breaking strict-aliasing rules and without losing performance points? I have considered using either memcmp or this macro: #define IS_EQUAL(a, b) \ (a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]) I'm thinking that the macro is the fastest solution. What do you recommend?

    Read the article

  • Complete state of a process

    - by sravan
    hi all, I wrote a small program which is as follows: #include<stdio.h> int c=0; int main() { int a=10,b=20; printf("Hello World\n"); c = a+b; printf("%d\n",c); return 0; } I can create a.out file using the command gcc -save-temps helloworld.c. The save-temps flag allows us to save the intermediate files, helloworld.i, helloworld.s, helloworld.o Now i want to know exactly how the stack of this program changes during the execution. Can some one please tell me how to go about it. My aim of this question is to know exactly what all happens during the execution of any program.

    Read the article

  • The D Programming Language for Game Development

    - by n2liquid
    Hi all, Recently I've been bothered because I reached a point in which C++ (even 0x) felt very limited, so I started looking for alternatives. Forget Java, C#, Python or Ruby. I still like the low-level nature of C++ and I'm not fond of virtual machines. Further, I'm a game engine developer, so I have to develop core routines which must be really fast, and lately I've been hungry for code expressiveness. C++ is an almost-there language for me, but there are many exceptions on how to use templates, and GCC isn't optimizing stuff as well as I'd hoped it would. So I'm considering to start learning D. Do you think it will suffice my needs as a game developer? I'm weary because I've never heard of D being used for that. Thanks!

    Read the article

  • Problem with optional arguments in C #defines

    - by imikedaman
    Hi, I'm having a problem with optional arguments in #define statements in C, or more specifically with gcc 4.2: bool func1(bool tmp) { return false; } void func2(bool tmp, bool tmp2) {} #define CALL(func, tmp, ...) func(tmp, ##__VA_ARGS__) int main() { // this compiles CALL(func2, CALL(func1, false), false); // this fails with: Implicit declaration of function 'CALL' CALL(func2, false, CALL(func1, false)); } That's obviously a contrived example, but does show the problem. Does anyone know how I can get the optional arguments to "resolve" correctly? Additional information: If I remove the ## before _VA_ARGS_, and do something like this: bool func2(bool tmp, bool tmp2) { return false; } #define CALL(func, tmp, ...) func(tmp, __VA_ARGS__) int main() { CALL(func2, false, CALL(func2, false, false)); } That compiles, but it no longer works with zero arguments since it would resolve to func(tmp, )

    Read the article

  • C pointer initialization and dereferencing, what's wrong here?

    - by randombits
    This should be super simple, but I'm not sure why the compiler is complaining here. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int *n = 5; printf ("n: %d", *n); exit(0); } Getting the following complaints: foo.c: In function ‘main’: foo.c:6: warning: initialization makes pointer from integer without a cast I just want to print the value that the pointer n references. I'm dereferencing it in the printf() statement and I get a segmentation fault. Compiling this with gcc -o foo foo.c.

    Read the article

  • Why "constructor-way" of declaring variable in "for-loop" allowed but in "if-statement" not allowed?

    - by PiotrNycz
    Consider this simple example: /*1*/ int main() { /*2*/ for (int i(7); i;){break;} /*3*/ if (int i(7)) {} /*4*/ } Why line-2 compiles just fine, whilst line-3 gives the error? This is little strange to me why if-statement is in this aspect treated worse than for-loop? If this is compiler specific - I tested with gcc-4.5.1: prog.cpp: In function 'int main()': prog.cpp:3:7: error: expected primary-expression before 'int' prog.cpp:3:7: error: expected ')' before 'int' I was inspired by this question [UPDATE] I know this compiles just fine: /*1*/ int main() { /*2*/ for (int i = 7; i;){break;} /*3*/ if (int i = 7) {} /*4*/ }

    Read the article

  • Why did this code still work?

    - by bstullkid
    Some old code that I just came across: MLIST * new_mlist_link() { MLIST *new_link = (MLIST * ) malloc(sizeof(MLIST)); new_link->next = NULL; new_link->mapi = NULL; new_link->result = 0; } This was being called to build a linked list, however I noticed there is no statement: return new_link; Even without the return statement there, the list still got built properly. Why did this happen? EDT: Platform: Mandriva 2009 64bit Linux 2.6.24.7-server GCC 4.2.3-6mnb1

    Read the article

  • Use C function in C++ program; "multiply-defined" error

    - by eom
    I am trying to use this code for the Porter stemming algorithm in a C++ program I've already written. I followed the instructions near the end of the file for using the code as a separate module. I created a file, stem.c, that ends after the definition and has extern int stem(char * p, int i, int j) ... It worked fine in Xcode but it does not work for me on Unix with gcc 4.1.1--strange because usually I have no problem moving between the two. I get the error ld: fatal: symbol `stem(char*, int, int)' is multiply-defined: (file /var/tmp//ccrWWlnb.o type=FUNC; file /var/tmp//cc6rUXka.o type=FUNC); ld: fatal: File processing errors. No output written to cluster I've looked online and it seems like there are many things I could have wrong, but I'm not sure what combination of a header file, extern "C", etc. would work.

    Read the article

  • How could my code compliled correctly without necessary headers?

    - by ZhengZhiren
    I use the functions fork(),exec()... But how can this program compiled without including some extra headers(like sys/types.h, sys/wait.h). I use ubuntu 10.04 with gcc version 4.4.3 #include <stdio.h> #include <stdlib.h> int main() { pid_t pid; printf("before fork\n"); pid = fork(); if(pid == 0) { /*child*/ if(execvp("./cpuid", NULL)) { printf("error\n"); exit(0); } } else { if(wait(NULL) != -1) { printf("ok\n"); } } return 0; }

    Read the article

  • Testing for the presence of a character in an string in C

    - by Prab
    What's wrong with this? #include <stdio.h> void main(){ char *s="some text"; printf("%d",is_in(s,'t')); } int is_in(char *s, char c){ while(*s){ if(*s==c) return 1; s++; } return 0; } I get the following compile time error with GCC: test.c:9: error: conflicting types for ‘is_in’ test.c:9: note: an argument type that has a default promotion can’t match an empty parameter name list declaration test.c:5: note: previous implicit declaration of ‘is_in’ was here

    Read the article

  • Incompatible format types

    - by nebffa
    I'm playing around with strncpy in C and am having some trouble. The code is as follows: #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char src[] = "Benjamin Franklin"; char dest[5]; strncpy(src, dest, sizeof(dest) / sizeof(char)); dest[5] = '\0'; printf("%s\n", dest); return 0; } which compiles with no errors using: gcc -Wall -g -Werror test.c -o test and prints out gibberish like p4?? I cannot really understand what I'm doing wrong especially since I have played around with it a lot and been looking online for answers. Perhaps since I am using arrays I am passing the address to printf without realising it?

    Read the article

  • Is allocating a dynamic array without specifying size well formed code?

    - by Als
    The following simple program snippet gives compilation errorswith gcc-4.3.4. Program: int main() { char *ptr = new char[10]; char *ptr1 = new char[]; return 0; } Compilation errors: prog.cpp: In function ‘int main()’: prog.cpp:4: error: expected primary-expression before ‘]’ token prog.cpp:3: warning: unused variable ‘ptr’ prog.cpp:4: warning: unused variable ‘ptr1’ But the same compiles cleanly with MSVC without any diagnostic message. So my question is: Does the Standard allow an new [] to be called without specifying the size? Or this a bug in MSVC? Can someone provide a reference from the standard which will conclusively say that the above code example is ill-formed or well-formed? I have had a look at: 5.3.4 New [expr.new] & 18.4.1.2 Array forms [lib.new.delete.array] but couldnt find any conclusive evidence about the behavior.

    Read the article

  • printf'ing a matrix

    - by Flavius
    I'm trying to implement an all-purpose function for printing 2D data. What I've come up with is: int mprintf(FILE* f, char* fmt, void** data, size_t cols, size_t rows) The challenge is determining how many bits to read at once from data, based on fmt. The format fmt is going to be the stdlib's-specific format for printf() and alike. Do you have any knowledge of already-existing features from stdlibc (GNU GCC C's) I could use to ease this up? I try avoiding having to do it all manually, because I know "I am stupid" (I don't want to introduce stupid bugs). Thus, reusing code would be the bug-freest way. Thanks Addendum I see there's a /usr/include/printf.h. Can't I use any of those functions to do it right and ease my job at the same time?

    Read the article

  • Logging to screen and to a file

    - by robUK
    What design pattern might apply to logging? What is normally used in this type of situation? Any good tutorials? I am writing a client-server application using C89 and gcc 4.4.4. I now need to implement some logging feature that will display log messages on the screen as well as log to a file. However, I don't want to display all log messages (warning, error, critical, unrecoverable, debug, etc). Maybe I can set so that it will display just errors and nothing else. For example, the user might not be interested in the debug messages on the screen output.

    Read the article

< Previous Page | 68 69 70 71 72 73 74 75 76 77 78 79  | Next Page >