小编Han*_*Han的帖子

编译期间关于 boost 静态库的链接错误“未定义引用”

我正在尝试使用 boost 库 1.57 在 Linux x64 上编译我的 C++ 项目。

这个项目是用 scons 编译的,我在我的 Arch Linux 上成功编译了它,但这次在 Ubuntu 机器上失败了。

我添加-lboost_coroutine了链接标志,但错误“未定义引用”仍然存在。

/usr/bin/g++ -o build/gcc.release/app -pthread -g
build/gcc.release/src/han/unity/rpcx.o 
-lpthread -lz -lboost_coroutine -lboost_context -lboost_date_time 
build/gcc.release/src/han/unity/rpcx.o: In function `attributes':
/usr/local/include/boost/coroutine/attributes.hpp:31: undefined reference 
to `boost::coroutines::stack_traits::default_size()'
Run Code Online (Sandbox Code Playgroud)

我注意到attributes.hpp 正是boost 协程头文件之一。我尝试使用 nm 来提升协程库,似乎没问题。

nm /usr/local/lib/libboost_coroutine.a | grep "default_size"
0000000000000170 T _ZN5boost10coroutines12stack_traits12default_sizeEv
Run Code Online (Sandbox Code Playgroud)

我搜索了这个错误的可能原因,大多数是关于链接器标志的顺序。在这种情况下,rpcx.o 依赖于 boost_coroutine,所以它出现在前面。

还有什么可能是原因?

c++ linux linker boost undefined-reference

3
推荐指数
1
解决办法
3571
查看次数

SystemC中的增量周期和增量通知是什么?

在SystemC中,有一种称为增量通知的通知,可以通过以下两种方法调用.

event.notify(SC_ZERO_TIME);
Run Code Online (Sandbox Code Playgroud)

要么

event.notify(0, SC_NS);
Run Code Online (Sandbox Code Playgroud)

它定义了在delta通知调用中,对事件敏感的进程将在下一个delta周期的评估阶段运行.

那么,什么是所谓的"三角周期"?它的定义是时钟周期还是某段时间?

systemc

2
推荐指数
1
解决办法
3123
查看次数

CUDA中经线和银行的机制是什么?

我是学习CUDA并行编程的新手.现在我对设备的全局内存访问感到困惑.这是关于扭曲模型和合并.

有一些要点:

  1. 据说一个块中的线程被分成了warp.在每个warp中最多有32个线程.这意味着同一warp的所有这些线程将与同一处理器同时执行.那么半翘曲的感觉是什么?

  2. 当谈到一个块的共享内存时,它将被分成16个库.为了避免银行冲突,多个线程可以同时读取一个银行而不是写入同一个银行.这是正确的解释吗?

提前致谢!

cuda bank-conflict

0
推荐指数
1
解决办法
902
查看次数

标签 统计

bank-conflict ×1

boost ×1

c++ ×1

cuda ×1

linker ×1

linux ×1

systemc ×1

undefined-reference ×1