undefined symbol: _ZN4Foam23ControllerStateProvider8positionE错误求助
-
大家好,我在src下创建了一个类叫做ControllerStateProvider,然后make文件借鉴其他的修改了下,Allwmake之后编译没有问题,然后在rigidbodyState的类中(这个是一个获取物体运动状态的functionObject)加入了几行关于ControllerStateProvider的代码,我在rigidbodyState类的option中加入了ControllerStateProvider 类的库和include文件 如下图
然后在rigidbodyState.C 中include了ControllerStateProvider .H 然后编译rigidbodyState,然后编译也没有问题。
然后我运行了一个测试案例 用的interDyMFoam的求解器,然后就报错,报错信息显示找不到这个functionObject的库,错误信息如下,在修改之前 这个functionObject是没有任何问题的 。
请问这是什么原因导致的呢 ? 我在 cfd-online 看说是option里相应的lib没有添加上,但是我这里已经添加上了,并且编译没有问题,只是运行的时候报错,请问怎么该解决这个问题呢? 万分感谢!!
-
问题已经解决了,@星星星星晴 在另一个帖子里回复的修改模型的方法很准确,然后我又检查了一遍,我这方面确实没问题,然后跟@东岳 老师说的库没全部编译也没有关系,我一直用的是Allmake。
我是创建了一个类,系统通过类的静态变量来传递一个参数,按照我的理解,类的静态变量在声明的时候就已经存在了,而且我在求解器的最开始对静态变量进行了初始化,然后通过类名直接访问来改变和读取静态变量的值,问题就出在这里。我不明白为什么上述操作不行,虽然编译没问题。我重新写一个成员函数,在成员函数里对静态变量进行修改,再编译,没问题,然后测试案例也没有问题。
虽然不是很明白是为什么这样,但是在这里写下来,希望对有类似问题的朋友有帮助。