Seagate/opensea-transport

Build failure with missed header "common.h"

Closed this issue · 2 comments

Hi,

When I built opensea-transport lib, it reports the error as below on my Ubuntu desktop with GCC:

leoy@leoy-ThinkPad-X240s:~/Work2/Develop/seagate/opensea-transport/Make/gcc$ make
rm -f lib/libopensea-transport.a lib/libopensea-transport.so* *.o ../../src/*.o
rm -rf lib
mkdir -p lib
cc -Wall  -c -fPIC -I. -std=gnu99 -DSEA_NVME_IOCTL_H -D_GNU_SOURCE  -I../../include -I../../include/vendor -I../../../opensea-common/include   ../../src/ata_cmds.c -o ../../src/ata_cmds.o
In file included from ../../src/ata_cmds.c:15:
../../include/common_public.h:17:10: fatal error: common.h: No such file or directory
 #include "common.h"
          ^~~~~~~~~~
compilation terminated.
Makefile:101: recipe for target '../../src/ata_cmds.o' failed
make: *** [../../src/ata_cmds.o] Error 1

I also searched my local repository and cannot find common.h header.

Thanks,
Leo

Hi @Leo-Yan

The file common.h is part of opensea-common and opensea-transport depends on opensea-common.

For openSeaChest project you can recursively pull all submodules together but for each individual libraries you have to pull them on your own.

The directory structure is suppose to be like:
/opensea-transport
/opensea-common

Hi @xahmad,

I didn't notice the key words for "-I../../../opensea-common/include". Now I can build it successfully with your suggestion. Thank you.