简体   繁体   中英

compiling C++ mac, look for header files not found

Based on this tutorial: http://syskall.com/how-to-roll-out-your-own-javascript-api-with/index.html/

I am trying to compile a C++ program on a mac, however the includes in my C++ file are not being found. I have the following directory structure:

myProj/
  |-- deps/  # third party code
  |   `-- v8
  `-- src/ 
      `-- myProj.cpp

in the myProj.cpp, I have several includes:

#include <include/v8.h>

so when i go to compile, I use the following:

g++ src/jsnotify.cpp -Ideps/v8/include

the deps/v8/include directory clearly has v8.h, but it still shows up as not found. is -I the correct flag for mac? I am also having trouble in linking:

g++ src/jsnotify.cpp -Ideps/v8/ -Ldeps/v8/ -lv8 -lpthread -v

the -lv8 causes:

ld: library not found for -lv8
clang: error: linker command failed with exit code 1 

Look at exactly what you're telling the compiler:

#include <include/v8.h>

"open the file "include/v8.h"

g++ src/jsnotify.cpp -Ideps/v8/include

"When trying to find files to include, search in deps/v8/include"

So, the obvious question: does deps/v8/include contain include/v8.h ? In other words, do you have the file deps/v8/include/include/v8.h ?

As you have it, the pre-processor is trying to resolve #include <include/v8.h> to deps/v8/include/include/v8.h .

Change your include to be:

#include <v8.h>

Or change your compiler command line to:

g++ src/jsnotify.cpp -Ideps/v8

Either option is likely to work - but if v8.h also specifies additional include files specified by prepending the "include" path (eg #include <include/foo.h> ) then the second option is more likely to work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM