Sponsored Content
Top Forums Web Development <Apache>error when compiling CPP modules Post 302642817 by ashabb on Friday 18th of May 2012 05:15:32 AM
Old 05-18-2012
<Apache>error when compiling CPP modules

Hi,

I am working on Linux Platform. I am just trying to port a CPP module to apache as a module. When I try to build the Apache , it throws an error as follows

Code:
libtool: unrecognized option `-DLINUX=2'

Later I did some search and changed the config_vars.mk file under the "build" directory of Apache.
The line that I changed is as follows
Before: EXTRA_CPPFLAGS = -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE
Changed to: EXTRA_CPPFLAGS = -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE

So I just removed the option from EXTRA_CPPFLAG and it worked fine.
I did this just to overcome the error ..

Can anyone please let me know what is the correct way of compiling the CPP module and provide some description. The C modules compiles fine.

Thanks

Last edited by radoulov; 05-18-2012 at 06:37 AM.. Reason: Code tags.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

get error while compiling apache with php module

hi, i'm compiling apache with php module after i finish compile mysql-4.0.0-alpha. i do it as the follow steps after untar'ed them in the same directory, 1) cd apache_1.3.22 ./configure 2) cd php-4.0.6 ./configure --with-mysql=/usr/local/mysql \ --with-apache=../apache_1.3.22 \... (2 Replies)
Discussion started by: jApHEth
2 Replies

2. Programming

Compiling multiple cpp files (abstract factory pattern)

Hi all, I have been working with java for awhile and because of my school projects I needed to switch C++. I tried to implement some patterns in C++ but unfortunately I couldn't. Specifically, I tried to implement abstract factory pattern but since I used separated files (habitual behavior from... (4 Replies)
Discussion started by: SaTYR
4 Replies

3. UNIX for Dummies Questions & Answers

Which modules are installed for APACHE?

Is there some way I can tell which modules I have installed for APACHE? Would it be in httpd.conf? (2 Replies)
Discussion started by: mojoman
2 Replies

4. Solaris

Apache modules different sizes on 2 servers

Hi I have built 2 modules on 2 different servers (both nodes in a cluster) and the files sizes are different for the same module on each server (size in bytes): Server1: 45592 mod_deflate.so Server2: 45540 mod_deflate.so Server1: 38400 mod_headers.so Server2: 38368 mod_headers.so ... (3 Replies)
Discussion started by: skewbie
3 Replies

5. Solaris

cc not found error in compiling perl modules

:rolleyes:make cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION="2.121\" -DXS_VERSION=\"2.121\" -KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE Dumper.c make: cc: Command not found make: *** Error 127 cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xarch=v8... (0 Replies)
Discussion started by: priyophan
0 Replies

6. UNIX for Advanced & Expert Users

Apache modules query

How and where can I see the list of modules that my Apache is running with. Note the httpd.conf can be altered after apache start so we can say for sure that the modules mentioned in there are the once that apache has loaded currently. Kindly help. (2 Replies)
Discussion started by: mohtashims
2 Replies

7. Red Hat

Error while starting Apache after compiling PHP and Curl

Hello, I am facing an issue while starting the apache server after compiling php and curl. Below are the versions i am using. php-5.2.17 httpd-2.2.17 curl-7.16.0 CentOS5.5x64 Compiling above packages without curl working very fine but when trying to compile php with curl below error is... (1 Reply)
Discussion started by: sunnysthakur
1 Replies

8. Programming

Error with shared lIBMpi.so.1 when compiling CPP program

Hello, Met a problem when compiling a C++ program from source code without error, but when ran it there was always an error message: ./Ray: error while loading shared libraries: libmpi_cxx.so.1: cannot open shared object file: No such file or directoryAs the error points to openmpi which was... (0 Replies)
Discussion started by: yifangt
0 Replies

9. UNIX for Dummies Questions & Answers

Error in compiling .cpp file

I get this error, defaults.cpp: In member function ‘int Defaults::GetIntDefault(const std::string&)’: defaults.cpp:68: error: ‘atoi’ was not declared in this scope defaults.cpp: In member function ‘real_t Defaults::GetRealDefault(const std::string&)’: defaults.cpp:76: error: ‘atof’ was not... (1 Reply)
Discussion started by: bstephens
1 Replies

10. UNIX for Beginners Questions & Answers

Missing Modules After Compiling Kernel

I'm a little embarrassed after all these years I've never really successfully compiled my own kernel. I used this guide to make the following files: linux-headers-5.1.9_5.1.9-1_amd64.deb linux-image-5.1.9_5.1.9-1_amd64.deb linux-libc-dev_5.1.9-1_amd64.deb When I first booted into this... (4 Replies)
Discussion started by: Azrael
4 Replies
APXS(1) 							       apxs								   APXS(1)

NAME
apxs - APache eXtenSion tool SYNOPSIS
apxs -g [ -S name=value ] -n modname apxs -q [ -v ] [ -S name=value ] query ... apxs -c [ -S name=value ] [ -o dsofile ] [ -I incdir ] [ -D name=value ] [ -L libdir ] [ -l libname ] [ -Wc,compiler-flags ] [ -Wl,linker- flags ] files ... apxs -i [ -S name=value ] [ -n modname ] [ -a ] [ -A ] dso-file ... apxs -e [ -S name=value ] [ -n modname ] [ -a ] [ -A ] dso-file ... SUMMARY
apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server. This is achieved by building a dynamic shared object (DSO) from one or more source or object files which then can be loaded into the Apache server under run- time via the LoadModule directive from mod_so. So to use this extension mechanism your platform has to support the DSO feature and your Apache httpd binary has to be built with the mod_so module. The apxs tool automatically complains if this is not the case. You can check this yourself by manually running the command $ httpd -l The module mod_so should be part of the displayed list. If these requirements are fulfilled you can easily extend your Apache server's functionality by installing your own modules with the DSO mechanism by the help of this apxs tool: $ apxs -i -a -c mod_foo.c gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c ld -Bshareable -o mod_foo.so mod_foo.o cp mod_foo.so /path/to/apache/modules/mod_foo.so chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/etc/httpd.conf] $ apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started $ _ The arguments files can be any C source file (.c), a object file (.o) or even a library archive (.a). The apxs tool automatically recog- nizes these extensions and automatically used the C source files for compilation while just using the object and archive files for the linking phase. But when using such pre-compiled objects make sure they are compiled for position independent code (PIC) to be able to use them for a dynamically loaded shared object. For instance with GCC you always just have to use -fpic. For other C compilers consult its manual page or at watch for the flags apxs uses to compile the object files. For more details about DSO support in Apache read the documentation of mod_so or perhaps even read the src/modules/standard/mod_so.c source file. OPTIONS
Common Options -n modname This explicitly sets the module name for the -i (install) and -g (template generation) option. Use this to explicitly specify the module name. For option -g this is required, for option -i the apxs tool tries to determine the name from the source or (as a fall- back) at least by guessing it from the filename. Query Options -q Performs a query for variables and environment settings used to build httpd. When invoked without query parameters, it prints all known variables and their values. The optional -v parameter formats the list output. .PP Use this to manually determine settings used to build the httpd that will load your module. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files. Configuration Options -S name=value This option changes the apxs settings described above. Template Generation Options -g This generates a subdirectory name (see option -n) and there two files: A sample module source file named mod_name.c which can be used as a template for creating your own modules or as a quick start for playing with the apxs mechanism. And a corresponding Make- file for even easier build and installing of this module. DSO Compilation Options -c This indicates the compilation operation. It first compiles the C source files (.c) of files into corresponding object files (.o) and then builds a dynamically shared object in dsofile by linking these object files plus the remaining object files (.o and .a) of files. If no -o option is specified the output file is guessed from the first filename in files and thus usually defaults to mod_name.so. -o dsofile Explicitly specifies the filename of the created dynamically shared object. If not specified and the name cannot be guessed from the files list, the fallback name mod_unknown.so is used. -D name=value This option is directly passed through to the compilation command(s). Use this to add your own defines to the build process. -I incdir This option is directly passed through to the compilation command(s). Use this to add your own include directories to search to the build process. -L libdir This option is directly passed through to the linker command. Use this to add your own library directories to search to the build process. -l libname This option is directly passed through to the linker command. Use this to add your own libraries to search to the build process. -Wc,compiler-flags This option passes compiler-flags as additional flags to the libtool --mode=compile command. Use this to add local compiler-specific options. -Wl,linker-flags This option passes linker-flags as additional flags to the libtool --mode=link command. Use this to add local linker-specific options. -p This option causes apxs to link against the apr/apr-util libraries. This is useful when compiling helper programs that use the apr/apr-util libraries. DSO Installation and Configuration Options -i This indicates the installation operation and installs one or more dynamically shared objects into the server's modules directory. -a This activates the module by automatically adding a corresponding LoadModule line to Apache's httpd.conf configuration file, or by enabling it if it already exists. -A Same as option -a but the created LoadModule directive is prefixed with a hash sign (#), i.e., the module is just prepared for later activation but initially disabled. -e This indicates the editing operation, which can be used with the -a and -A options similarly to the -i operation to edit Apache's httpd.conf configuration file without attempting to install the module. EXAMPLES
Assume you have an Apache module named mod_foo.c available which should extend Apache's server functionality. To accomplish this you first have to compile the C source into a shared object suitable for loading into the Apache server under runtime via the following command: $ apxs -c mod_foo.c /path/to/libtool --mode=compile gcc ... -c mod_foo.c /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo $ _ Then you have to update the Apache configuration by making sure a LoadModule directive is present to load this shared object. To simplify this step apxs provides an automatic way to install the shared object in its "modules" directory and updating the httpd.conf file accord- ingly. This can be achieved by running: $ apxs -i -a mod_foo.la /path/to/instdso.sh mod_foo.la /path/to/apache/modules /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules ... chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/conf/httpd.conf] $ _ This way a line named LoadModule foo_module modules/mod_foo.so is added to the configuration file if still not present. If you want to have this disabled per default use the -A option, i.e. $ apxs -i -A mod_foo.c For a quick test of the apxs mechanism you can create a sample Apache module template plus a corresponding Makefile via: $ apxs -g -n foo Creating [DIR] foo Creating [FILE] foo/Makefile Creating [FILE] foo/modules.mk Creating [FILE] foo/mod_foo.c Creating [FILE] foo/.deps $ _ Then you can immediately compile this sample module into a shared object and load it into the Apache server: $ cd foo $ make all reload apxs -c mod_foo.c /path/to/libtool --mode=compile gcc ... -c mod_foo.c /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo apxs -i -a -n "foo" mod_foo.la /path/to/instdso.sh mod_foo.la /path/to/apache/modules /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules ... chmod 755 /path/to/apache/modules/mod_foo.so [activating module `foo' in /path/to/apache/conf/httpd.conf] apachectl restart /path/to/apache/sbin/apachectl restart: httpd not running, trying to start [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module /path/to/apache/sbin/apachectl restart: httpd started $ _ Apache HTTP Server 2018-07-06 APXS(1)
All times are GMT -4. The time now is 07:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy