Please give some advice for c++ beginner

Hello, I’m a beginner in C++. Up until now, I’ve only done C++ programming on the Windows operating system using VS (Visual Studio), and I mostly use Python. When using VS, all I needed to do was write the code, and VS took care of the rest, so there are many aspects, including the workings of the compilation process, that I’m not very familiar with.

Currently, I’m facing some confusion in using OpenFHE. I honestly followed the official tutorial to install OpenFHE on Ubuntu 20.04, and the “make testall” command ran successfully. I want to use the OpenFHE library to validate some research ideas, but I’m struggling to run and debug the code as easily as I did in VS.

I installed OpenFHE on Ubuntu 20.04 and opened it using VSCode, but it consistently shows that it cannot open header files. I’ve referred to the VSCode official documentation and some online solutions, tried a few things, but still can’t resolve my issue. I suspect it might be because I lack a general understanding of C++ programming. I’m not sure if make, VSCode, or other compilers need to work together and what configurations I need to make as a user.

I followed the VSCode official tutorial to build and run a HelloWorld project, but for such a complex and comprehensive project like this, I still don’t know where to start.

Additionally, I’ve read the “Building User Applications” section in the official OpenFHE documentation. My understanding is that I can only write code using a text editor and then use build and cmake tools. Can I run and debug code in a graphical interface editor? This would be beneficial for a novice like me to learn, understand, and modify code through the debug mode.

I hope to receive some advice on how to develop on Ubuntu. It would be great if you could provide some learning resources or advice!

I’m not sure if I’ve clearly expressed my confusion, and I feel a bit hesitant to ask here because I think it might be basic for everyone. However, I genuinely don’t know where to start learning to run, debug, and modify OpenFHE to assist with my research.

If anyone could provide some help, I would be extremely grateful!

Yes, you should be able to do that if you built OpenFHE in Debug mode.
Check the cmake build command you used to build OpenFHE. The default cmake build configuration for OpenFHE is Release, which generates an optimized version but typically excludes symbol names, data type information, file names, and line numbers. These elements are crucial for effective debugging.

To enable debugging of OpenFHE files, you must explicitly build OpenFHE in Debug mode as follows:

cd <openfhe-root-directory>
mkdir build 
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..

Thanks for getting back to me! I’ve been playing around with SEAL and TenSEAL over the past ten days, trying out some ideas and seeing how they hold up. Now, I’m gearing up to dive into OpenFHE for some more experiments. Along the way, I stumbled upon Saroja Erabelli’s Python code for CKKS and BFV – super cool stuff! From what I’ve gathered online, she’s now part of the OpenFHE development team too. You guys are seriously impressive! Big shoutout and looking forward to picking up some tricks from your expertise!