Build Standalone Release Porject CryEngine V - c++

I'm making my project with CryEngine V (5.5) and I'd like to obtain a release-standalone build.
I'm really going crazy with that. My porject is the First Person Shooter template with some dependecies on boost and OpenSSL.
I'm able to build the release and profile solution and if I build the "Packaged Build" the stand alone executables under the bin folder run with no problem on my machine. My problem is when I try to export the built package on another machine: The game says that it can't find the Game.dll. On the documentation I can't find some reliable references or a clean example (if I try to follow any on the required steps I got errors everywhere).
Can anybody explain me how to do it properly? The documentation is TOO poor for a clear comprehension about this process.
Thanks

Related

Can a project be build even missing a lib?

There is a Visual Studio project which refers to opencv_world440.lib but it does not seem to be available on vcpkg.
I understand vcpkg has opencv 4.3. In order to proceed I tried to remove opencv_world440.lib from
VS, project, properties, linker, input, additional dependencies and the project build successfully then. But when I tried
to run it return an application error
The application was unable to start correctly (0xc0000017).
I'm not sure what is going on here. May I conclude the project actually does not depend on opencv_world440.lib
because it build when I remove it?
Try to use dependency walker to see if it's something related to libraries. Anyway that error code stands for STATUS_NO_MEMORY as described here which indicates a problem with memory (can also be something OS level!?), sorry but I cannot be more specific.
EDIT
"opencv_world" appears to be just one DLL holding all the OpenCV modules, making it easier to distribute. The alternative is to have one library per module. So I guess if you have all the other libraries and it builds, you don't need opencv_world. In few worlds you cannot build a project if you don't have all the necessary libs.

C++ V8 Embedding project structure

I'm trying to get chrome V8 embedded in my C++ project, and I can only get what I could call, my project being embedded in V8. My only concern with this is that my program is cross-platform and I would like build commands to be the same. I started development it on Windows, but I'm using a mac now to get V8 running.
I can get V8 built and their samples running using this setup:
Get this: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
get source: https://v8.dev/docs/source-code
build: https://v8.dev/docs/build
My current solution has a few commands install, build, run. The build command is more complicated as it attempts to automatically edit the BUILD.gn file in V8 to insert your project instead of V8. It will add all files in your source directory to the sources.
This approach feels very wrong for a few reasons. The first being that there is almost definitely a better way to configure my project than editing a build script with a python script. Secondly, I would like V8 to be embedded in my project, not the other way around. I only have SDL2 as a dependency but I have cross platform CMake builds setup, which would be abandoned for however V8 builds the source files. I feel this way could get hard to manage if I add more dependencies.
I'm currently working with a small test project with one source file.
EDIT: I can't find anything on embedding V8 between running a sample and API usage
The usual approach is to have a step in your build system that builds the V8 library as a dependency (as well as any other dependencies you might have). For that, it should use the official V8 build instructions. If you have a split between steps to get sources/dependencies and compiling them, then getting depot_tools and calling fetch_v8/gclient sync belongs in there. Note that you probably want to pin a version (latest stable branch) rather than using tip-of-tree. So, in pseudocode, you'd have something like:
step get_dependencies:
download/update depot_tools
download/update V8 # pinned_revision (using depot_tools)
step compile (depends on "get_dependencies"):
cd v8; gn args out/...; ninja -C out/...;
cd sdl; build sdl
build your own code, linking against V8/sdl/other deps.
Many build systems already have convenient ways to do these things. I don't know CMake very well though, so I can't suggest anything specific there.
I agree that using scripts to automatically modify BUILD.gn feels wrong. It'll probably also turn out to be brittle and high-maintenance over time.
I got V8 building with CMake very easily using brew:
brew install v8
then add the following lines to CMakeLists.txt
file(GLOB_RECURSE V8_LIB # just GLOB is probably fine
"/usr/local/opt/v8/lib/*.dylib"
)
include_directories(
YOUR_INCLUDES
/usr/local/opt/v8
/usr/local/opt/v8/include
)
target_link_libraries(YOUR_PROJECT LINK_PUBLIC YOUR_LIBS ${V8_LIB})
Worked on Mojave 10.14.1

Including OpenCV source in project without installation

I'm currently trying to setup an OpenCV project using CMake.
I want to have the highest portability between machines so I thought I can achieve it by including the OpenCV source and compiling it and link it in CMake to the executable.
I'm not quite sure how to go about it because I'm a beginner to CMake and OpenCV. However, I would like to avoid installing it on the machine as much as possible as I would just want to build it and run on a machine.
So far, I've looked at the possibility of including the source of OpenCV in the CMakeFiles.txt like so:
add_subdirectory(opencv-3.1.0)
target_link_libraries(foo opencv-core)
However, it hasn't worked for me so far.
Can anyone provide me with suggestions?
Thank you.
EDIT:
The main problem I've been encountering so far is that once I use make install to move all the binaries into place, it will try to move the compiled version of OpenCV into the install location which I'm not sure how to avoid using it.

Can not find opencv naclport build output

Sorry if this is a really dump question. I was able to build opencv for nacl using naclports. I checked-out with pepper 42 and the built it using NACL_ARCH=pnacl make opencv command and it built successfully.
But in src/out/build/opencv folder there are no much files and it is not the file structure that i have seen with regular opencv build. In include/opencv2 folder there is only one file called "opencv.hpp".
I guess i have to do something like make install but i have no idea how to do it. I tried simply running make install but no result. Please if someone can guide me how to get done the rest of the process from here and build it to use with nacl it would be a great help.
The output directory for naclports has structure that captures both the build and install results for packages (per arch) so it has a few more layers.
The installation (result of doing make install) of opencv for pnacl is in:
src/out/build/opencv/install_pnacl/payload/
That installation is also injected into the nacl sdk you're currently pointed at. So ideally, if you're building against something requiring opencv, you'll be able to do so without explicitly referencing the copy in out/.

ArUco program from scratch

I'm using the ArUco library with OpenCV (more information here) but I can't find a way to build and run a program from scratch.
Once I installed the library I have access to different examples but if I want for instance to create a new file and add the library headers inside it, how can I compile and run it ? (with a command line or IDE, anything is fine)
Thank you
I sent and email to the library's author and he added clear instructions at the end of the project webpage :)
It seems you need to learn how to use your IDE's, compilation tools and general compilation basic stuff. This is not a question related to Aruco, or mostly any other tags you have set.
Try to lean CMake first, 'cause Aruco compilation is based on CMake: http://www.cmake.org/
You can start by just editing the aruco_simple example.
For a IDE that works right away with CMake you can try either Qt Creator >3.1 or KDevelop. Both free.