Borland C++Builder 编译ACE经验

简介:

最近在研究ACE,买了本《ACE程序员指南》,例子程序竟然没有编译通过,链接不上。

int ACE_TMAIN (int, ACE_TCHAR *[])
{
  ACE_TRACE (ACE_TEXT ("main"));

  ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%IHi Mom/n")));

  ACE_OSTREAM_TYPE *output =
    new std::ofstream ("ostream.output.test");
//  ACE_LOG_MSG->msg_ostream (output, 1);
  ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
  ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);

  ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnight/n")));

  return 0;
}

如果不注释掉,link就会失败,

[Linker Error] Unresolved external 'ACE_Log_Msg::msg_ostream(_STL::basic_ostream<char, _STL::char_traits<char> > *, int)' referenced from D:/BORLAND/CBUILDER6/PROJECTS/ACE/LOGGING/USE_OSTREAM.OBJ

注释掉就没问题。这可是《ACE程序员指南》里的例子程序,怎么还有这种问题?

到出寻找答案,都没有结果。最后还是自己解决,原来是BCB5,BCB6共存造成的。
在命令行使用make的时候调用的路径BCB5在前面,所以生成的ace_b.dll是BCB5的,到了BCB6里面就会出错。
修改了路径配置,分别生成了BCB5和BCB6的ace_b.dll,再编译运行出错程序,就一切正常了。

另外还有一个链接错误需要$(BCB)/Lib/psdk/ws2_32.lib ,如下

[Linker Error] Unresolved external 'WSAEventSelect' referenced from D:/BORLAND/CBUILDER6/PROJECTS/ACE/REACTOR/CLIENT.OBJ



本文转自leonpard 51CTO博客,原文链接:http://blog.51cto.com/leonpard/1172667

相关文章
|
3月前
|
安全 编译器 C++
C++一分钟之-编译时计算:constexpr与模板元编程
【6月更文挑战第28天】在C++中,`constexpr`和模板元编程用于编译时计算,提升性能和类型安全。`constexpr`指示编译器在编译时计算函数或对象,而模板元编程通过模板生成类型依赖代码。常见问题包括误解constexpr函数限制和模板递归深度。解决策略包括理解规则、编写清晰代码、测试验证和适度使用。通过实战示例展示了如何使用`constexpr`计算阶乘和模板元编程计算平方。
51 13
|
2月前
|
消息中间件 Java C语言
消息队列 MQ使用问题之在使用C++客户端和GBase的ESQL进行编译时出现core dump,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
2月前
|
C++ 运维
开发与运维编译问题之在C++中在使用std::mutex后能自动释放锁如何解决
开发与运维编译问题之在C++中在使用std::mutex后能自动释放锁如何解决
44 2
|
2月前
|
编译器 C++ 运维
开发与运维编译问题之在C++中创建一个简单的自旋锁如何解决
开发与运维编译问题之在C++中创建一个简单的自旋锁如何解决
21 2
|
2月前
|
C++ 开发者
C++一分钟之-编译时计算:constexpr与模板元编程
【7月更文挑战第2天】C++的`constexpr`和模板元编程(TMP)实现了编译时计算,增强代码效率。`constexpr`用于声明编译时常量表达式,适用于数组大小等。模板元编程则利用模板进行复杂计算。常见问题包括编译时间过长、可读性差。避免方法包括限制TMP使用,保持代码清晰。结合两者可以解决复杂问题,但需明确各自适用场景。正确使用能提升代码性能,但需平衡复杂性和编译成本。
70 3
|
3月前
|
IDE 开发工具 C++
插件:CLion中使用C/C++ Single File Execution插件编译和运行单个文件
插件:CLion中使用C/C++ Single File Execution插件编译和运行单个文件
144 0
|
3月前
|
Linux 编译器 C++
Linux centOS 编译C/C++
Linux centOS 编译C/C++
|
4月前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4月前
|
存储 IDE 编译器
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
|
4月前
|
编译器 C++
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?