Simon South created THRIFT-1826:
-----------------------------------

             Summary: Library, generated files use incorrect path for Thrift 
headers
                 Key: THRIFT-1826
                 URL: https://issues.apache.org/jira/browse/THRIFT-1826
             Project: Thrift
          Issue Type: Bug
          Components: C glib - Compiler, C glib - Library
    Affects Versions: 0.9
         Environment: CentOS 6.3 on x86 (32-bit)
            Reporter: Simon South
            Priority: Minor


By default Thrift's header files for C+GLib are installed beneath 
/usr/local/include/thrift/c_glib. However, both files generated by Thrift's 
compiler and Thrift's own (library) header files seem to assume these are 
available at /usr/local/include/thrift.

Consequently, by default generated files fail to compile, e.g.:

$ make
gcc -g -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -c -o 
main.o main.c
In file included from gen-c_glib/hello_world.h:10,
                 from main.c:4:
gen-c_glib/hello_world_types.h:12:34: error: thrift/thrift_struct.h: No such 
file or directory
gen-c_glib/hello_world_types.h:13:45: error: thrift/protocol/thrift_protocol.h: 
No such file or directory

These files would actually be found at "thrift/c_glib/thrift_struct.h" and 
"thrift/c_glib/protocol/thrift_protocol.h".

The easy workaround is to create a symbolic link, i.e.:

$ cd /usr/local/include/thrift/c_glib
$ ln -s . thrift

and then add "/usr/local/include/thrift/c_glib" to the compiler's search path. 
But it seems to me a better solution would be to

1. Change the path of the installed header files, perhaps storing them in 
"/usr/local/include/thrift/c_glib/thrift", which would at least remove the need 
for the symbol link;

2. Update the library and the generator to use the correct path in #include 
statements; or

3. Have the installer create a symbolic link automatically.

If there is consensus on the correct fix (I vote for the second) I can spend 
the time to implement it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to