Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C程序中使用Boost库_C++_C_Gcc_Boost - Fatal编程技术网

C++ 如何在C程序中使用Boost库

C++ 如何在C程序中使用Boost库,c++,c,gcc,boost,C++,C,Gcc,Boost,我正在做一个用C写的项目,但我想用Boost。我已将Boost库包括在我的主文件中,如下所示: #定义GNU#U源 #定义GNU源 #包括 #包括“initialize.h” #包括 #包括 #包括 我使用的是gcc-W-Wall-I/usr/local/boost\u 1\u 76\u 0 main.c-o executable-lm-lboost\u random main.c:8:10:致命错误:iostream:没有这样的文件或目录 8 |#包括 我猜Boost库正在使用,但由于它不

我正在做一个用C写的项目,但我想用Boost。我已将Boost库包括在我的主文件中,如下所示:

#定义GNU#U源
#定义GNU源
#包括
#包括“initialize.h”
#包括
#包括
#包括
我使用的是
gcc-W-Wall-I/usr/local/boost\u 1\u 76\u 0 main.c-o executable-lm-lboost\u random

main.c:8:10:致命错误:iostream:没有这样的文件或目录
8 |#包括

我猜Boost库正在使用
,但由于它不是C库,我不知道如何处理这个问题。。。我应该用C++编译吗?< /p> Boost是一个非常简单的C++库,因此不能在C程序中使用。

如果需要使用Boo../P> < P> Boost,则需要使用C++。C++是严格的。即使它的一些部分是用C编译器编译的,也不能保证总是这样

一种方法是使用Boost构建C++中的DLL/SO,使用C风格链接导出函数。


然后使用C.

链接到那个库。你的C项目可能用C++编译器编译好。使用C++编译器,然后你可以访问Boost和所有其他C++库。这是C++最初设计用来处理的一种转换。

Boost不能与C一起使用,因为它使用C++的OOP特性。从技术上讲,为它开发一个包装器是可能的。检查


Pinit=malloc(sizeof(*part->Pinit)*2500)的转换无效@PulsARH:是的,你需要在C++中在右手边抛出Maloc。(你也可以用C来做,但这是不必要的,偶尔也会有害。)@pulsar\u hh你需要施放
malloc
的结果。这是你唯一需要改变fwiw的事情。如果你希望C和C++是有效的,你可以使用C风格的铸件。@ Bathsheba,它会对你有害吗?如果你使用适当的警告,我怀疑这会把事情搞砸。