Это были шаги, которые я использовал для сборки PhysX SDK в Ubuntu 18.04:
- Установка зависимостей:
sudo apt-get install clang
, sudo apt-get install cmake
, sudo apt-get install freeglut3-dev
, sudo apt-get install libglew-dev
, sudo apt-get install xterm
и sudo apt-get install nvidia-cg-toolkit
Следуйте инструкциям в README.md
, запустите generate_projects.sh
и выберите параметр linux
, который генерирует настройки cmake.
Go в PhysX-4.1/physx/compiler/linux-debug
и запустите make
, это заняло около 10 минут на моем ноутбуке и скомпилировал SDK, состоящий из множества .o
.
И, наконец, cd
в PhysX-4.1/physx/bin/linux.clang/debug
, и вы сможете запустить ./SnippetHelloWorld_64
и другие демонстрации:
SnippetHelloWorld_64
РЕДАКТИРОВАТЬ:
SnippetHelloWorld.cpp
зависит от целого ряда других файлов, таких как SnippetHelloWorldRender.cpp
, таких вещей, как камеры, код обнаружения столкновений и т. Д. иначе из Physx API необходимо запустить этот конкретный пример, все они находятся в других файлах. Система make автоматически калибрует необходимые зависимости в одну большую команду ie. g++ -I./include SnippetHelloWorld.cpp physx.o octree.a anotherdependency.x ... -o SnippetHelloWorld_64
et c ... чтобы спасти вас от того, что вы пытаетесь сделать, то есть вручную разрешать все зависимости, что я бы не рекомендовал, если вы не пытаетесь извлечь пример голых костей с зависимостью из монолита Структура API, и в этом случае я бы по-прежнему использовал имеющуюся систему make и медленно, но верно удалял части API, пока у вас не будет минимального примера, который все еще строится (меняя направление каждый раз, когда он ломается по пути). В любом случае, вернемся к системе make. Это не только для однократного создания библиотеки, это полезно для непрерывной разработки, так как вы можете сделать первый раз, это займет много времени, потому что он собирает все, но затем, если вы измените некоторые файлы и снова запустите make, он только перекомпилирует файлы, которые вы изменили, и перестроите окончательный исполняемый файл, который отлично подходит для быстрой разработки, экспериментов и прототипирования, имея хорошо структурированную структуру проекта. Причина, по которой компилятор выдает эти ошибки, заключается в том, что эти определения в основном создаются компилятором автоматически для настройки системы make (grep
символы отладки, и вы видите, что они определены в make-файле).
Короче говоря, используйте make система, это то, для чего она там. Если у вас есть причина, которая резко отличается от того, что я предположил в ответе, укажите ее, и я постараюсь помочь, но, кстати, система make - ваш друг в этом, создание всего api один раз будет медленным, но make снова, и он будет строить только измененные файлы.