का उपयोग नहीं कर रहा है, मैं इस धारणा के तहत था कि बूस्ट :: एएसओ एक चुनिंदा कार्यान्वयन के बजाय डिफ़ॉल्ट रूप से एक एपोल सेटअप का उपयोग करेगा, लेकिन कुछ परीक्षण चलाने के बाद ऐसा लगता है कि मेरा सेटअप चयन का उपयोग कर रहा है।लिनक्स पर एसोयो को एपोल
ओएस: RHEL 4
कर्नेल: 2.6
जीसीसी: 3.4.6
मैं एक छोटे से परीक्षण कार्यक्रम जो रिएक्टर हैडर किया जा रहा था सत्यापित करने के लिए लिखा था, और उसके चयन रिएक्टर का उपयोग कर के बजाय की तरह यह लग रहा है एपोल रिएक्टर।
#include <boost/asio.hpp>
#include <string>
#include <iostream>
std::string output;
#if defined(BOOST_ASIO_EPOLL_REACTOR_HPP)
int main(void)
{
std::cout << "you have epoll enabled." << std::endl;
}
#elif defined(BOOST_ASIO_DETAIL_SELECT_REACTOR_HPP)
int main(void)
{
std::cout << "you have select enabled." << std::endl;
}
#else
int main(void)
{
std::cout << "this shit is confusing." << std::endl;
}
#endif
मैं गलत क्या कर सकता था?
मुद्रित मेरे लिए "का चयन करें" यह कोड। epoll_reactor_fwd.hpp में कुछ खुदाई करने के बाद और कुछ और परीक्षण, LINUX_VERSION_CODE एक संस्करण को कम कर रहा है जो 2.4.45 (जो स्पष्ट रूप से एपोल का उपयोग करने के लिए आवश्यक है)। uname -r निम्नलिखित रिटर्न: $ uname -r 2.6.9-78.0.13.ELsmp तो epoll_reactor_fwd.hpp मैं उत्पादन "epoll" करने के लिए अपने कार्यक्रम प्राप्त कर सकते हैं में आवश्यक कर्नेल के साथ मूर्ख। क्या यह सर्वर कॉन्फ़िगरेशन त्रुटि का कुछ प्रकार है? –
वास्तव में ऐसा लगता है। मेरी देव प्रणाली LINUX_VERSION_CODE को 132639 या KERNEL_VERSION (2,6,31) के रूप में आउटपुट करती है (और इसे 2.6.31.5 के साथ भेज दिया गया था - यह एक ओपनएसयूएसई है)। यदि आप स्रोत से बढ़ावा को पुनर्निर्माण करते हैं तो क्या होगा? – Cubbi
Boost.Asio केवल हेडर है, मुझे संदेह है कि पुनर्निर्माण बढ़ावा मदद करेगा। –