你好我是Linux平台的初学者因此我不熟悉终端命令。
我正在编写一个关于C ++的应用程序,我希望它能消耗大量的处理能力。所以我想确保我在设备上使用所有可用内核(它有4个内核)。
我使用以下命令创建可执行文件:
gcc -o blink -l rt blink.c -l bcm2835
其中bcm2835是我用于I / O的库。所以我的问题是,这个命令是使用所有可用内核还是我可以做些什么来优化它?我愿意使用所有可用的东西,抛出厨房水槽,如果它会使这个代码运行得更快。
答案 0 :(得分:1)
-j
个工作选项适用于make
而不是gcc
与make
一起使用时,会导致多个“食谱”并行执行。在这种情况下,您的gcc
行是一个食谱。
问题修订后
如果您希望代码使用多个内核,则需要使用线程或进程。看看pthreads。
答案 1 :(得分:1)
由于您正在使用C ++,因此您可以为您集成足够好的跨平台 - 足够的线程库(> = C ++ 11)。
只需确保添加-std=c++11
以便
gcc -o blink -l rt blink.c -l bcm2835
成为
gcc -std=c++11 -o blink -l rt blink.c -l bcm2835
http://www.cplusplus.com/reference/thread/thread/的文档和基本示例 更好地查看http://en.cppreference.com/w/cpp/thread/thread
上的文档你仍然需要编写自己的线程。