Configuring nginx with g++
decimusphostle at gmail.com
Thu Nov 11 05:35:43 MSK 2010
Thanks for your responses. My comments are inline.
On Wed, Nov 10, 2010 at 8:43 PM, Maxim Dounin <mdounin at mdounin.ru> wrote:
> On Wed, Nov 10, 2010 at 06:59:44PM -0500, Decimus Phostle wrote:
>> Q1) I have been trying to compile nginx using the C++ compiler as follows:
>> $ ./configure --with-cc=g++ --add-module=/path/to/module --prefix=/some/prefix
>> (Also, tried "CC=g++ ./configure ...").
>> Both these commands result in this error:
>> creating objs/Makefile
>> checking for int size ...
>> ./configure: error: can not detect int size
>> On tail'ing the objs/autoconf.err, the error is obvious(details
>> below). How do I go about fixing this? And/or is this fixed in a later
>> release? (I am using 0.8.52). Please let me know.
> While this particular error probably should be fixed (it's as
> trivial as including stdio.h into test in auto/types/sizeof) - in
> general using C++ compiler to compile C code isn't going to
> produce anything good. These are two different languages.
Yes. (That and I got a warning about the format/int type). Trivial as
it may seem to fix, I was wondering if anyone has pointers on how to
fix it as the file in which the error occurs (objs/autotest.c) is
>> Q2) The above issue was encountered while trying to write a
>> handler/module in C++. Is there another way I should be approaching
> Just create source file with appropriate extension and include
> nginx header files in an extern "C" block, then write C++ code.
> See src/misc/ngx_cpp_test_module.cpp for an example (really simple
> one though).
I did look at this. [Naive question follows: ] However as the
modules/handlers get compiled/linked along with the server in nginx, I
was under the assumption that if I need to write a C++ module/handler
then I must compile nginx with g++ (instead of cc). (As the usual way
to compile build the server + modules is "./configure
--add-module=foobar && make && make install"). Am I missing something
or is there another way to do this? Please let me know.
More information about the nginx