我刚开始使用 iotivity 并一直在阅读文档。在此设置页面上,在运行 c++ 示例的标题下,它说明了如何运行示例,但在此之前我应该先构建它们,并且Build the C++ samples
它所指的页面似乎丢失了。
当我尝试使用 以正常方式构建示例时g++
,它给出了一些缺少的标头错误,这意味着这不是正确的方法或者需要付出很多努力。
有人知道如何使用 iotivity 版本构建示例包吗?
我进行了很多研究以找到为 c++ 示例生成可执行文件的位置,最终找到了路径。
在 64 位 Ubuntu 14.04 LTS 上,当 iotivity 构建如下:
$scons
/iotivity/out/linux/x86_64/release/resource/examples
可执行文件是在其中存在的代码的路径中创建的,/iotivity/resource/examples
因此您只需转到/iotivity/out/linux/x86_64/release/resource/examples
并执行 simpleserver( ./simpleserver ) 和 simpleclient( ./simpleclient )
将以下生成文件放在iotivity/resource/examples目录中:
IDIR=-I../include -I./../csdk/stack/include/ -I./../c_common/ -I./../oc_logger/include
CC=g++
CFLAGS=-Wall -std=c++11 $(IDIR) -loc -loctbstack -loc_logger -lpthread
SERV_OBJ = simpleserver.o
CLIENT_OBJ = simpleclient.o
%.o: %.cpp
$(CC) -c -o $@ $^ $(CFLAGS)
#Build the simpleserver executable
all:simpleserver simpleclient
simpleserver:$(SERV_OBJ)
$(CC) -o $@ $^ $(CFLAGS)
#Build the simpleclient executable
simpleclient:$(CLIENT_OBJ)
$(CC) -o $@ $^ $(CFLAGS)
然后点击make
终端。然后在两个不同的终端上执行simpleclient
和。simpleserver
如果您收到错误消息:
./simpleclient: error while loading shared libraries: liboc.so: cannot open shared object file: No such file or directory
键入以下内容:
export LD_LIBRARY_PATH=../../out/linux/x86_64/release
查看有关 IoTivity 支持(和不支持)示例的此页面:
https://wiki.iotivity.org/examples#
cd ${project_dir}/out/${TARGET_OS}/${TARGET_ARCH}/${BUILD_MODE}/resource/examples/
killall simpleserver simpleclient # make sure none are running
./simpleserver 2>&1 | tee simpleserver.log.txt &
./simpleclient 2>&1 | tee simpleclient.log.txt
一些 c++ 示例在 1.3.0 中不起作用,而 1.2.1 应该没问题
但是如果你想从主树之外构建其他示例,我制作了一个使用 gnu make 的专用项目。
希望这可以帮助