I am compiling on Ubuntu 10.04 LTS. The Perforce Python API uses their C++ API for some of it. So, I point the setup.py at the C++'s API directory using the --apidir= they say to use. When it starts to compile the C++, I get a whole load of errors (temporary error list link is now gone). No one else has had these errors as far as I can tell. So, my question is, is it my idiocy, or Perforce's?
P.S. The reason I don't have the flag in the command is because I setup the setup.cfg file to point at the API.
Woops! Forgot I still needed to install python-dev...
Related
I'm trying to compile the examples under cpp starting with minimal_build. I don't have much cmake experience. Must this be run under docker, or can it just be compiled in a Linux shell? I'm running Centos7 on a AWS EC2 instance, and I've installed cmake 3.20.2. Executing sudo ./run.sh, errors immediately with "cd: /io: No such file or directory". When I try and make what I think are the necessary changes to the scripts, I keep hitting errors. So I just want to see is this is even possible before proceeding further.
Thanks.
Yes, it is possible. I recently built Arrow on CentOS 7. With any C++ project there are going to be challenges switching amongst Linux distributions. The docker image is a way to provide a single example that the Arrow project can verify. You will need to adapt your Linux environment based on the issues you encounter. #Tsyvarev is also correct, you will want to use run_static.sh instead of run.sh. In order to do this you will need to dive a bit further into the details.
The build script has two steps. First, it will build the Arrow project itself. This is probably going to be the more challenging step. This guide is helpful for this step and provides a lot more detail into how Arrow builds and what options there are. The second step will be to compile and build the example.
Specifically for CentOS 7 one of the challenges you will face is that you will need a newer version of CMake. I ended up building CMake from source. If you go this route you also need to make sure that CMake is built with curl/https support. I used the --system-curl option for this.
That is all I remember having to do special for CentOS 7 at the moment. As you go about this task if you run into further, more specific, issues, feel free to ask them here or on the Arrow dev/user mailing list.
im planning to build a c++ application based on another c++ package (aria2c) i found over the internet which acts as a ready made wheel for me. I have already installed the package on my machine, but the problem is when i run system("aria2c"); it outputs "command not found", whereas if i run system("git"); (which i have also installed) it will output the git's man page.
calling "brew" also doesnt work whereas git, ls and some other that i tried work.
So can someone explain to me why i cant access that package ? and if there is any solution to it ?
The most common mistake is that the pacakge might be installed for a particular user or at a particular path. Make sure that you have the library/application in your path list
To do that ,i would suggest first finding where the package is installed and then do echo $PATH in terminal to see if its in your path variable
I am a new user of macintosh and uses OS X 10.9.4 Mavericks. I have recently installed Xcode and I have downloaded SDL2. This is where the problems started.
When I tried to compile some code that uses SDL2, I got a Xcode crash. The crash was expected behaviors since the reason was an invalid code signature in SDL2.
So I googled this and 2 solutions came up in this link. The first solution recommended that I downloaded the source code for SDL2 and recompiled it. The second solution was to update the code signature as
codesign -f -s - ~/Library/Frameworks/SDL2.framework/SDL2
The second solution seems to be the preferred one since the first solution probably does this in the end anyway. However, I am not completely familiar with code signatures since I come from a windows environment (where these things are hidden for the most) and also since all programming I have done have been for internal use only. So this is the long introduction and my questions are then:
Where is the code signature located (inside the frameworks or somewhere else in the computer)?
What can happen if I update the code signature? Especially can this cause any trouble in the future and even if SDL2.framework is uninstalled?
BR Patrik
You are not required to code sign a framework you build and install yourself (this is what I do for SDL 2). When Frameworks are codesigned the signature can be found in the "Versions" subdirectory of the Framework bundle. there will be the usual _CodeSignature directory for each signed "version", just as there is for an "app" bundle.
resigning the framework wont affect anything in your system. when you update the SDL2 framework to a version that doesnt have this problem your changes will be "undone".
I'm following the tutorial given here, have installed boot (and tested it) and created a new hoplon project called hoplon-webapp.
When I run boot development in my project directory, I get no response. No files are compiled or generated.
I'm using Ubuntu 12.04.
What might be the problem?
The compilation succeeded when I tried it again at home.
I'm guessing that it needed to download some dependencies over the net.
It should have given some error or warning, though. This behavior was very strange.
I am very disappointed with my school linux server when doing the homework on it.
The reason is: my homework requires to make GUI application.
All the tool that I have is:
- ssh from my local machine to school machine
- gcc/g++ in my school machine
I have been thinking and tried out different solutions for a week.
I still can't be able to figure out how to bring GUI to my application.
Here is some solutions I tried:
- Install some graphical library (sdl,ncurses...) but school computer does not allow to install because i'm not the root user
- Try to compile with /X11/ to produce X-GUI application. Then running it throgh ssh (tunneling). This does not work either because school computer does not have headers file located in X11.
So, What CAN I DO? Anybody has suggestion?
I will thank you million times if you could help for a solution.
Thanks you much.
tsubasa
It should be possible to install most things, like ncurses or even X11, in user space (in your home directory), if you install them from source. With a Gnu package, you just use --prefix= as an argument to configure, like this:
./configure --prefix=/name/of/directory/to/install/into
I'm not sure about the other packages.
Without a GUI library to link against, you won't be able to develop a C/C++ app on that server. It seems to me that you have a few options:
1) Develop this GUI app someplace else. If it has to be in Linux, and you're a Windows/Mac user, you can install Ubuntu (or some other Linux Distro) on a Virtual Machine and get a full featured environment.
2) Contact the Linux administrator to explain the homework assignment and convince them to install a GUI package for you. (It may help to have your professor also contact the Linux Administrator) (If you don't know who the linux admin is, try emailing root#linuxbox
3) Bend the rules on what a "GUI" environment is. For example, can your C/C++ app output HTML files for a GUI-like experience through a web-browser?
4) Try to install some sort of GUI package inside your account on the server. This will likely fail unless you are very, very good at administering a linux box, and you've hand-built packages before.
Could do it with ncurses
Perhaps you could ditch the school server and use Virtualbox to run a linux VM locally on your machine and develop on that. It's free.
From "INSTALL" file in ncurses source archive:
The package gets installed beneath the --prefix directory as follows:
In $(prefix)/bin: tic, infocmp, captoinfo, tset,
reset, clear, tput, toe
In $(prefix)/lib: libncurses*.* libcurses.a
In $(prefix)/share/terminfo: compiled terminal descriptions
In $(prefix)/include: C header files
Under $(prefix)/man: the manual pages
Note that the configure script attempts to locate previous
installation of
ncurses, and will set the default prefix according to where it finds the
ncurses headers.
Do not use commands such as
make install prefix=XXX
to change the prefix after configuration, since the prefix value
is used
for some absolute pathnames such as TERMINFO. Instead do this
make install DESTDIR=XXX
So I'd recommend using "make install DESTDIR=XXX" where XXX is the location where you have write persmissions.
HTH