私は現在、プレキャスト4をOpenGL sdkに適用する方法を学びたいと考えています。私は現在、2つのプロジェクトを構築するVisual Studio 2010ソリューションを作成しようとしています.1つは静的ライブラリであり、もう1つはmainメソッドを含む単一のメインソースファイルです。スタジオライブラリーを作成してpremakeでリンクする
このプロジェクトはとてもシンプルなもので、あくまで事前学習を目的としています。 Testという静的ライブラリプロジェクトでは、Test.hとTest.cppという2つのファイルがあります。 Test.hには、print()メソッドのプロトタイプが含まれています。 print()は単にコンソールに行を出力します。 premakeを使って、静的ライブラリをMainプロジェクトにリンクし、main.cppにTest.hファイルを含めました。私が構築しようとするとVS2010で、私はこのエラーを取得:
solution "HelloWorld"
configurations {"Debug", "Release"}
project "Main"
kind "ConsoleApp"
language "C++"
files{
"main.cpp"
}
configuration "Debug"
defines { "DEBUG" }
flags { "Symbols" }
configuration "Release"
defines { "NDEBUG" }
flags { "Optimize" }
links {"Test"}
project "Test"
kind "StaticLib"
language "C++"
files{
"test.h",
"test.cpp"
}
Test.cppの:
ここ1>main.obj : error LNK2019: unresolved external symbol "void __cdecl print(void)" (? [email protected]@YAXXZ) referenced in function _main 1>.\Main.exe : fatal error LNK1120: 1 unresolved externals
は4つのファイル、premake4.luaで私のコードで私の問題はこれです
#include <iostream>
void print(){
std::cout << "HELLO" << std::endl;
}
TEST.H:
void print();
のmain.c PPは:それは0を返す達するとそこgetchは()がありますなぜあなたは
#include <conio.h>
#include "test.h"
int main(){
print();
getch();
return 0;
}
を不思議に思っている場合は、自分のコンピュータ上でコンソールがすぐに閉じて、私は、ウィンドウを強制的にその問題を、戦うためにgetchは()を使用しますユーザが別のキーを押すまで待つ。問題の内容がわからないので、この問題に関するアドバイスは素晴らしいと思います。何か簡単なことであれば私にそれを嫌うのではなく、プレマイクとスタティックライブラリの経験がほとんどないので、私はそれらを勉強しようとしています。
これは問題ですが、ビルドを実行しようとすると問題が発生します:プログラムを起動できません: 'file_location \。\ Test.lib'指定されたファイルが認識できないかサポートされていませんバイナリ形式。これに関する助け? PS。私が変更したのは、リンク{"テスト"}を言語のすぐ下に移動することでした。 – user1032369
@ user1032369:実行可能ファイルではなく*ライブラリ*を実行しようとしているからです。現在の「スタートアッププロジェクト」を変更します。 –
私は実行可能ファイルをクリックするだけでpremakeプログラムを実行できます。私はVSから実行することはできません。 – user1032369