在SO社区的帮助下,我成功地用c++运行了我的第一个基于MySQL的文件。现在,下一步是作为CGI文件在Apache上运行。在Apache上,它给出了500内部服务器错误,在服务器日志中,我得到了以下内容:
Sat Jan 19 12:18:18 2013] [notice] caught SIGTERM, shutting down
[Sat Jan 19 12:18:23 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Jan 19 12:18:23 2013] [notice] Digest: done
[Sat Jan 19 12:18:23 2013] [notice] Apache/2.0.63 (Unix) PHP/5.3.2 DAV/2 configured -- resuming normal operations
[Sat Jan 19 12:18:51 2013] [error] [client 127.0.0.1] Premature end of script headers: addproduct.cgi
我执行了以下步骤
1-我进入netbeans生成的DEBUG文件夹并重命名addproduct。添加product.cgi
2-复制到htdocs/myappfolder/我的文件是使用MySQL和Boost的库,我想我得到错误由于相同的原因。我想知道我如何链接包括和库随着CGI?
下面给出了MySQL连接器/c++的c++代码
更新:在摆弄路径后,我现在得到以下错误:
libmysqlcppconn.6.dylib
引用:/应用程序/MAMP/根/库存/库存/dist/调试/GNU-MacOSX/。/库存原因:图像未找到Trace/BPT trap http://pastie.org/5723836
otool给出如下信息:
otool -LMV inventory
inventory:
libmysqlcppconn.6.dylib (compatibility version 6.0.0, current version 6.1.1)
time stamp 2 Thu Jan 1 05:00:02 1970
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
time stamp 2 Thu Jan 1 05:00:02 1970
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
看起来您正在使用错误的文件。.o文件是一个目标文件,它是编译的结果,但没有被链接。我希望netbeans还生成了一个名为addproduct的文件,没有任何扩展名。这是你的可执行文件,可以被apache调用。
PS如果你对c++和CGI很认真,你可能会想看看fastcgi。