Find the answer to your Linux question:
Results 1 to 3 of 3
Hello, I have my two main files: main.h #include <jni.h> // Load libs #ifdef DARWIN // MacOSX #include "os/darwin/darwin_os.h" #elif LINUX // Linux #include "os/linux/linux_os.h"; #endif // End main .cpp ...
  1. #1
    Just Joined!
    Join Date
    Jun 2009
    Posts
    4

    g++ linking

    Hello,

    I have my two main files:

    main.h

    #include <jni.h>
    // Load libs
    #ifdef DARWIN // MacOSX
    #include "os/darwin/darwin_os.h"
    #elif LINUX // Linux
    #include "os/linux/linux_os.h";
    #endif // End

    main .cpp

    .... (JNIEnv *env, jobject jobj) {
    // idea being that depending on the header loaded it will return the cpu load depending on the OS.
    return cpu();
    }

    linux_os.h

    ....

    linux_os.cpp

    double cpu() {
    return 23.3;
    }

    I am currently,

    g++ -Wall -c os/linux/linux_os.cpp

    then,

    g++ -Wall -fPIC -shared -I /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include -I /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/linux/ linux_os.o -c main.cpp

    which returns

    error: ‘cpu’ was not declared in this scope

    I am clearly missing something with linking the libraries. Help is greatly appreciated. Thanks.

  2. #2
    Linux Engineer GNU-Fan's Avatar
    Join Date
    Mar 2008
    Posts
    935
    Just what the compiler says.

    cpu isn't declared when compiling main.cpp.
    You resolve this by putting a function prototype in linux_os.h and #include it in main.cpp.

    I am clearly missing something with linking the libraries.
    No. If you use the -c option or there was a problem with compiling, you don't get to the linking stage.
    Debian GNU/Linux -- You know you want it.

  3. #3
    Just Joined!
    Join Date
    Jun 2009
    Posts
    4
    Hello,

    Thank you for your reply, the g++ is now working fine. However the complier is throwing out:

    g++: linux_os.o: linker input file unused because linking not done

    Any ideas? Thanks.

    P.s. I have read the thread to do with this error already posted on this forum.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...