うまくいかないと思っていましたが、プログラム ファイルをローカル マシンから Amazon EC2 の新しいインスタンスにアップロードしました。それを実行しようとしたよりも:
[ec2-user@domU-12-31-39-14-2A-1A ~]$ ./webserver.net
-bash: ./webserver.net: /lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
どうやらありません/lib/ld-linux-x86-64.so.2
。これは 64 ビットのインスタンスです。
EC2 インスタンスを対象とするローカル マシンでコンパイル/リンクするにはどうすればよいですか。インスタンス上に構築したくありません。
私のメイクファイル
OBJECTS= ./obj/hello.o
LDFLAGS = -L/usr/lib -lwt -lwthttp
./bin/webserver.net : $(OBJECTS)
g++ -o ./bin/webserver.net $(OBJECTS) $(LDFLAGS)
./obj/hello.o : ./src/hello.cpp
g++ -c ./src/hello.cpp -o ./obj/hello.o
.PHONY: clean
clean:
-rm -f obj/*.o bin/webserver.net core *~ src/*~
静的にリンクされたファイルを更新します。各ライブラリを手動で正しい順序で追加するまで、未定義の参照がありました。これは必要ですか?または私はそれを間違っていますか?
g++ -static -pthread -o ./bin/out.net ./obj/hello.o -lwthttp -lwt -lboost_thread -lboost_system -lboost_program_options -lboost_random -lboost_signals -lboost_filesystem -lboost_regex -lboost_serialization -lboost_date_time -lssl -lcrypto -lz -ldl