私は現在、OpenGLsdkに適用するためにpremake4を使用する方法を学ぼうとしています。私は現在、2つのプロジェクトを構築するVisual Studio 2010ソリューションを作成しようとしています。一方は静的ライブラリであり、もう一方はmainメソッドを使用して単一のメインソースファイルを含みます。
このプロジェクトは非常にシンプルで、プレメイクを学ぶことだけを目的としています。Testという名前の静的ライブラリプロジェクトには、Test.hとTest.cppの2つのファイルがあります。Test.hには、メソッドprint()のプロトタイプが含まれています。print()は、コンソールに1行を出力するだけです。premakeを使用して、静的ライブラリをMainプロジェクトにリンクし、main.cppにTest.hファイルを含めました。私の問題はこれです:VS2010では、ビルドしようとすると次のエラーが発生します:
1> main.obj:エラーLNK2019:関数_mainで参照される未解決の外部シンボル "void __cdecl print(void)"(?print @@ YAXXZ) 1>。\Main.exe:致命的なエラーLNK1120:1つの未解決の外部
これが4つのファイルpremake4.luaの私のコードです:
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:
#include <iostream>
void print(){
std::cout << "HELLO" << std::endl;
}
Test.h:
void print();
Main.cpp:
#include <conio.h>
#include "test.h"
int main(){
print();
getch();
return 0;
}
なぜそこにgetch()があるのか疑問に思っている場合、私のコンピューターでは、コンソールが0に達するとすぐに閉じるので、getch()を使用してその問題に対処します。これにより、ユーザーが別のキーを押すまでウィンドウが強制的に待機します。 。問題が何であるかわからないので、この問題に関するアドバイスは素晴らしいでしょう。単純なものである場合は、去勢しないでください。プリメイクライブラリと静的ライブラリの経験がほとんどないため、それらを学習しようとしています。